Вы находитесь на странице: 1из 20

Курсовая работа

Тема: Питание в отеле

Группа: 680.21

Студент: Нуриев Мурад


Введение

Причины по которой будет использована база данных MS SQL:

 Независимость от конкретных СУБД


 Наличие стандартов
 Декларированность
Независимость от конкретных СУБД

 Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём


тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко
перенесены из одной СУБД в другую. Существуют системы, разработчики
которых изначально ориентировались на применение по меньшей мере
нескольких СУБД. Естественно, что при применении некоторых специфичных
для реализации возможностей такой переносимости добиться уже очень трудно.
Наличие стандартов

 Наличие стандартов и набора тестов для выявления совместимости и


соответствия конкретной реализации SQL общепринятому стандарту только
способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам
по себе стандарт местами чересчур формализован и раздут в размерах.
Декларированность

 С помощью SQL программист описывает только то, какие данные нужно извлечь
или модифицировать. То, каким образом это сделать, решает СУБД
непосредственно при обработке SQL-запроса. Однако не стоит думать, что это
полностью универсальный принцип - программист описывает набор данных для
выборки или модификации, однако ему при этом полезно представлять, как СУБД
будет разбирать текст его запроса. Чем сложнее сконструирован запрос, тем
больше он допускает вариантов написания, различных по скорости выполнения,
но одинаковых по итоговому набору данных.
Глава 1 Теория
История
Первые иерархические базы данных появились в начале 1960-х годов.
Информация была разделена на два уровня иерархии: один уровень содержал
информацию, идентичную для нескольких записей в базе данных. Затем
нарезка была расширена до формы древовидной диаграммы.
В 1965 году Чарльз Бахман разработал архитектуру Ansi / Sparc,
которая используется до сих пор. В 1969 году он создал сетевая модель данных
в рамках консорциума CODASYL для компьютерных приложений, для
которых иерархическая модель не подходит. Чарльз Бахман получил премию
Тьюринга в 1973 году за «выдающийся вклад в технологию баз данных».
В реляционной модели отношение обозначает всю информацию в
таблице, в то время как ассоциация в модели сущность-ассоциация обозначает
логическую связь, которая существует между двумя таблицами, содержащими
связанную информацию.
SQL

SQL ("Structured Query Language", «язык структурированных


запросов») - это язык для управления и проектирования данных. Хотя
сам SQL не является языком программирования, многим он известен
как язык программирования. SQL - это подъязык, используемый в
любой среде баз данных. С SQL операции могут выполняться только с
базой данных; Он используется для добавления информации в системы
в базах данных, изменения информации, извлечения информации и
запроса информации. Он особенно используется в системах
реляционных баз данных. Используя предложения, относящиеся к SQL,
записи могут быть добавлены в базу данных, существующие записи
могут быть изменены, удалены и могут быть созданы списки из этих
записей.
Глава 2 Практика
Для начало необходимо создать. Базу данных который будет содержать все
необходимые таблицы. Затем сами таблицы.Есть несколько модификаций к
таблицам которые стоит описать. Первое это то что все столбцы таблиц
должны быть отмечены как NOT NULL что озночает что данный столбец не
может остоваться пустым при введении новых строк. Это на случай
непредвиденных ошибок в дальнещей работе. Затем все Id столбцы
отвечаюшие за уникальность всех строк и для того чтобы не было путанциы
должны иметь пару изменений . Например Должны иметь Primary Key. Это
так называемые ключи в SQL отвечаюшие за внесение определенных
ограничений для таблиц
Этот ключ запрешает добавлять строку где помеченный этим ключем столбец
имеет одинаковое значение с другой уже существующей строкой. А также
самостоятельно при вводе данных сортирует по этому столбцу.
Кроме того необходимо добавть к столбцу параметр Identity(0,1) что озночает
что при вводе новых строк данный столбец будет сам присваивать значение Id
которое увеличивается каждый раз при вводе но нужно учитывать что при
этом при вводе нельзя указывать значение Id или команда вызовет ощибку
Принцип работы
Исходя из потребностей управления отелей можно вывести определенные типы данных

2.1.1.Данные про отель



Таблица должна хранить все необходимые данные а именно то для кого отель какой у него номер на каком этаже он находится и тд

2.1.2.Данные про постояльцев



Данная таблица предназначена чтобы знать кто сейчас занял какой номер

Иметь личные данные на случай экстренных событий или в случае обмана со стороны постояльца

А также количество дней который занял клиент для того чтобы при бронировании для следуюший постояльцев не было путаницы

2.1.3.Данные о платежах

Данная таблица будет содержать лишь информацию о том кто и сколько заплатил

Это информация необходимо для того чтобы полностью без ошибок определить разные бухгалтерские даные например о прибыли
и создать программу которая автоматически определяет возможные ошибки чтобы не было потерь в прибыли
Содержимое

таблица номеров в отеле

В котором будет содержатся 6 столбцов


Id

RoomNumber

Stage

ForFamily

IsLux

Price

Также содержит условие (CHECK)


чтобы этаж был между 1 и 20
Содержимое
Таблица клиентов
Id

IdentityCode

Name

Surname

RoomId

DayCount
Содержимое
Таблица оплаты
RoomId

ClientId

Data
Создание таблиц


CREATE TABLE ApartmentTable(
 [Id] [int] NOT NULL,
 [RoomNumber] [int] NOT NULL,
 [Stage] [int] NOT NULL,
 [ForFamily] [bit] NOT NULL,
 [IsLux] [bit] NOT NULL,
 [Price] [money] NOT NULL,

PRIMARY KEY CLUSTERED-Индексы бывают clustered и
nonclustered у обоих есть плюсы и минусы

(
 [Id] ASC

)


UNIQUE NONCLUSTERED

(
 [RoomNumber] ASC

) CREATE TABLE [dbo].[PaymentTable](

GO [RoomId] [int] NOT NULL,


ALTER TABLE [dbo].[ApartmentTable] WITH CHECK ADD
[ClientId] [int] NOT NULL,
CHECK (([Stage]>=(1) AND [Stage]<=(20))) [Data] [datetime] NOT NULL

GO

) ON [PRIMARY]
Добавление строк

INSERT INTO ApartmentTable


VALUES

(0, 1, 1, 0, 0, 123),
(1, 2, 1, 0, 1, 500),
(2, 3, 2, 1, 1, 100),
(3, 4, 2, 1, 0, 999);

INSERT INTO ClientTable


VALUES

(0, 'snwn123',' Name1','SName1',0,1),


(1, 'hsuq91r','Name2','SName2',1,4),
(2, 'jj91wc1','Name3','SName3',1,21),
(3, 'fd9eq11','Name4','SName4',3,3);
INSERT INTO PaymentTable
VALUES

(0, 0, ‘2022-4-11’),
(1, 1, ‘2022-5-1’),
(2, 1, ‘2022-8-23’),
(3, 3, ‘2022-12-01’);
Запрос SELECT

SELECT * FROM ApartmentTable

SELECT * FROM ClientTable WHERE DayCount < 10

SELECT * FROM PaymentTable JOIN ApartmentTable


ON PaymentTable.ClientId = ApartmentTable.Id
Заключение

В этой работе мы узнали из теории про историю SQL, также некоторые


преимущества подобных субд и причину по которой именно данная база данных
была использована.Из практики мы научились создавать саму базу данных, добавить
несколько таблиц а также работа по самим таблицам(CRUD-Create Read Update
Delete) Создать(Create) Читать(Select) Обновить(Update) Удалить(Delete)
В подобных субд есть два способа работать с базами и операциями над ними :
По средством интерфейсов то есть кнопок и остальных элементов меню
И по средсвом кода (как в этой курсовой работе)
У обоих путей есть как хорошие так и плохие стороны
И программист должен понимать в каких случаях к какому из способов стоит
прибергнуть для более оптимизированной работы
Источники

1. Paul, Ryan (24 October 2005). "A guided tour of the Microsoft Command Shell". Ars Technica. Retrieved 10
April 2011.
2.^ "Media Type registration for application/sql". Internet Assigned Numbers Authority. 10 April 2013. Retrieved 10
April 2013.
3.^ Shafranovich, Y. (April 2013). "The application/sql Media Type, RFC 6922". Internet Engineering Task Force: 3. doi:
10.17487/RFC6922. Retrieved 10 April 2013.
4.^ Beaulieu, Alan (April 2009). Mary E Treseler (ed.). Learning SQL (2nd ed.). Sebastopol, CA, USA: O'Reilly. ISBN
978-0-596-52083-0.
5.^ Chamberlin, Donald D. (2001-10-03). "Oral history interview with Donald D. Chamberlin". Retrieved 2020-01-14. We
changed the original name "SEQUEL" to SQL because we got a letter from somebody’s lawyer that said the name
"SEQUEL" belonged to them. We shortened it to SQL, for Structured Query Language, and the product was known as
SQL/DS.
6.^ SQL-92, 4.22 SQL-statements, 4.22.1 Classes of SQL-statements "There are at least five ways of classifying SQL-
statements:", 4.22.2, SQL statements classified by function "The following are the main classes of SQL-statements:";
SQL:2003 4.11 SQL-statements, and later revisions.
7.^ Chatham, Mark (2012). Structured Query Language By Example - Volume I: Data Query Language. p. 8. ISBN
978-1-29119951-2.
8.^ Codd, Edgar F. (June 1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the
ACM. 13 (6): 377–87. CiteSeerX 10.1.1.88.646. doi:10.1145/362384.362685. S2CID 207549016.
9.^ Jump up to:a b Chapple, Mike. "SQL Fundamentals". Databases. About.com. Retrieved 2009-01-28.
10.^ "Structured Query Language (SQL)". International Business Machines. October 27, 2006. Retrieved 2007-06-10.
Спасибо за внимание

Вам также может понравиться