Мегаобучалка Главная | О нас | Обратная связь


Обоснование выбора SQL



2019-07-03 255 Обсуждений (0)
Обоснование выбора SQL 0.00 из 5.00 0 оценок




 

SQL - сокращение от Structured Query Language (Язык структурированных запросов) - это универсальный язык для создания, модификации и управления данными в реляционных базах данных.

Реляционная модель была предложена в 1970 году И.Ф. Коддом, работавшим в исследовательской лаборатории IBM в Сан-Хосе, Калифорния, и развивалась последующие десять лет в университетах и научных организациях. SQL - один из нескольких языков, выросших из этой идеи, в настоящее время практически полностью господствует в мире реляционных баз данных. Производители систем управления реляционными базами данных, первоначально использовавшие другие языки, сегодня полностью переориентировались на SQL.

SQL - это язык, на котором можно «разговаривать» с реляционными базами данных. Все системы управления базами данных предназначены для хранения и обработки информации. Реляционный подход к управлению базами данных основан на математической модели, использующей методы реляционной алгебры и реляционного исчисления.

Определение реляционной системы, так же, как и правила Кодда, требует чтобы весь диалог с базой данных велся на едином языке - иногда его называют общим подъязыком данных. В мире коммерческих систем управления базами данных такой язык получил название SQL.

SQL используется для манипуляции с данными (data manipulation) - выборки и модификации, определения данных (data definition) и администрирования данных (data administration). Любая операция по выборке, модификации, определению или администрированию выполняется с помощью оператора (statement) или команды (command) SQL.

Имеется две разновидности операции по манипуляции с данными - выборка данных (data retrieval) и модификация данных (data modification). Выборка - это поиск необходимых вам данных, а модификация означает добавление, удаление или изменение данных.

Операции по выборке (чаще называемые запросами (queries)) осуществляют поиск в базе данных, наиболее эффективно извлекают затребованную вами информацию и отображает ее. Во всех запросах SQL используется ключевое слово Select.

Создание базы данных

 

База данных – это именованная область на носителе данных, содержащая таблицы, индексы и другие объекты.

Для создания базы данных используется команда CREATE DATABASE

Создание базы данных "Ремонт и ТО автотранспорта"

USE master;

GO

IF DB_ID (N'autorem') IS NOT NULL

DROP DATABASE autorem;

GO

CREATE DATABASE autorem ON PRIMARY

(SIZE = 20MB,Name='autorem',

Filename='D:\Programs\Autorem\Bases\autorem.mdf')

GO

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

 

Создав базу данных и подключившись к ней, можно начать создание таблиц. Таблицы являются основными строительными блоками базы данных. В них содержаться строки и столбцы данных. С помощью команд определения данных SQL можно создавать, удалять и манипулировать таблицами (добавлять, удалять, переставлять столбцы и менять их параметры).

В большинстве реализаций SQL таблицей владеет создавший ее пользователь, выдавая разрешения на ее использование другим пользователям. Чтобы создать таблицу, по меньшей мере, надо сделать следующее.

1. Задать имя таблицы.

2. Задать имена составляющих ее столбцов.

3. Определить тип данных для каждого столбца.

4. Определить ограничения для каждого столбца или таблицы.

Для создания таблицы используется команда Create Table.

Порядок создания таблиц: сначала создаются родительские (те, которые не содержат внешних ключей), затем дочерние таблиц. Если таблицы созданы и связаны правильно, то на диаграмме созданной в Enterprise Manager это будет выглядеть следующим образом (см. Приложение 1).

Назначение ограничений NULL/NOT NULL - разрешает или не разрешает неопределенность значений атрибутов; ограничение NULL (задается по умолчанию) явно указывает, что значения столбца могут быть не определены.

Ограничение UNIQUE - разрешает только уникальные значения атрибутов;     Ограничение PRIMARY KEY - определяет первичный ключ отношения (в каждом отношении может иметь место только один первичный ключ, первичный ключ не может иметь NULL значений, одна и та же комбинация столбцов не может быть объявлена одновременно в качестве уникального и первичного ключа);

Ограничение FOREIGN KEY - определяет внешний ключ отношения (в одном отношении может быть несколько внешних ключей); организует ссылку по внешнему ключу на заданное в предложении REFERENCES отношение.

База данных "Ремонт и ТО автотранспорта" включает в себя следующие таблицы:

· Автобаза (Autobase)

· Справочник состояний (Condition)

· Справочник технического обслуживания (Technical)

· Тип марки (TypeMarka)

· Марка (Marka)

· Транспорт (Transport)

· Состояние единицы (ConditionUnit)

Таблица Автобаза (Autobase).

Таблица содержит данные об автобазах. Каждая автобаза имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDAutobase)={NameAutobase, Address}, что аналогично R(Уникальный номер автобазы)={Название автобазы, Юридический адрес автобазы}. Атрибут IDAutobase должен быть уникальным и не равен нулю, т.к. является первичным ключом. Атрибут NameAutobase должен быть уникален, т.к. совпадающие названия автобаз состояний нарушают нормализацию таблицы базы данных, а также не равен NULL. Размер поля NameAutobase должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 11 символов (к примеру, "Автобаза №1", "Автобаза №2"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 4 символов, имеем размер поля NameAutobase типа VARCHAR равным 15. Размер поля Address должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 35 символов (например, "г. Воркута, ул. Автозаводская, 22"), следовательно, принимая во внимание необходимость резервной избыточности размера поля порядка 25 символов, имеем размер поля Address типа VARCHAR равным 60 (см. Таблица 1).

 

Таблица 1.

Название атрибута Имя поля Тип поля Размер Ограничения
Уникальный номер автобазы IDAutobase INT   NOT NULL, PRIMARY KEY
Название автобазы NameAutobase VARCHAR 15 NOT NULL, UNIQUE
Юридический адрес автобазы Address VARCHAR 60  

 

USE autorem;

GO

CREATE TABLE Autobase

(IDAutobase INT IDENTITY CONSTRAINT AutobasePrimary PRIMARY KEY,

NameAutobase VARCHAR (15) NOT NULL CONSTRAINT NameAutobaseUnique UNIQUE,

Address VARCHAR (60))

GO

 

Справочник состояний (Condition)

Таблица содержит данные о типе марки автотранспорта. Каждое состояние автотранспорта имеет уникальный номер, который является первичным ключом отношения.

Схема отношения имеет вид: R(IDCondition)={NameCondition}, что аналогично R(ID справочника состояний)={Название состояния}.

Атрибут IDCondition должен быть уникальным и не быть равным NULL, т.к. является первичным ключом. Атрибут NameCondition должен быть уникален, т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных, а также не равен NULL.

Размер поля NameCondition должен содержать символьные значения и максимальный среднестатистический размер атрибута не превышает 6 символов (например, "ремонт", "ТР", "ТО1", "ТО2", "СО"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 3 символов, имеем размер поля NameCondition типа VARCHAR равным 10 символам (см. Таблица 2).

 

Таблица 2.

Название атрибута Имя поля Тип поля Размер Ограничения
ID справочника состояний IDCondition INT   NOT NULL
Название состояния NameCondition VARCHAR 10 NOT NULL, UNIQUE

 

USE autorem;

GO

CREATE TABLE Condition

(IDCondition INT IDENTITY CONSTRAINT ConditionPrimary PRIMARY KEY,

NameCondition VARCHAR (10) NOT NULL CONSTRAINT NameConditionUnique UNIQUE)

GO

 

Справочник технического обслуживания ( Technical )

Таблица содержит данные о периодичности технического обслуживания подвижного состава. Каждый тип автотранспорта (легковые, автобусы, грузовые автобусы на базе грузовых автомобилей) имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDTechnical)={NameTechnical, TO1, TO2}, что аналогично R(ID справочника технического обслуживания)={Название типа автотранспорта, Километраж для TO1, Километраж для TO2}. Атрибут IDTechnical должен быть уникальным и не быть равным NULL, т.к. является первичным ключом. Атрибут NameTechnical должен быть уникален, т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных, а также не равен NULL. Размер поля NameTechnical содержит символьные значения и максимальный среднестатистический размер атрибута не превышает 46 символа (например, "грузовые автобусы на базе грузовых автомобилей", "легковые", "автобусы"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 13 символов, имеем размер поля NameTechnical типа VARCHAR равным 60 символам. Поле TO1 должно содержать числовые значения о пробеге автотранспорта до первого технического обслуживания, следовательно, поле ТО1 имеет тип INT. Поле TO2 должно содержать числовые значения о пробеге автотранспорта до второго технического обслуживания, следовательно, поле ТО2 имеет тип INT. (см. Таблица 3).

 

Таблица 3.

Название атрибута Имя поля Тип поля Размер Ограничения
ID справочника технического обслуживания IDTechnical INT   NOT NULL
Название типа автотранспорта NameTechnical VARCHAR 60 NOT NULL, UNIQUE
Километраж для TO1 TO1 INT    
Километраж для TO2 TO2 INT    

 

CREATE TABLE Technical

(IDTechnical INT IDENTITY CONSTRAINT TechnicalPrimary PRIMARY KEY,

NameTechnical VARCHAR (60) NOT NULL CONSTRAINT NameTechnicalUnique UNIQUE,

TO1 INT,

TO2 INT)

Тип марки (TypeMarka)

Таблица содержит данные о типе марки автотранспорта. Каждая марка автотранспорта имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDTypeMarka)={IDTechnical, NameTypeMarka}, что аналогично R(Уникальный номер типа марки)={ID справочника технического обслуживания, Название типа марки}. Внешним ключом является IDTechnical (ID справочника технического обслуживания). Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является первичным ключом отношения. Атрибут IDTechnical должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут NameTypeMarka должен быть уникален, т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных, а также не должен быть равен NULL. Размер поля NameTypeMarka должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 20 символов (к примеру, "бортовая платформа", "экс.грейд.бульд.погр"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 15 символов, имеем размер поля NameTypeMarka типа VARCHAR равным 35 символам (см. Таблица 4).

 

Таблица 4.

Название атрибута Имя поля Тип поля Размер Ограничения
Уникальный номер типа марки IDTypeMarka INT   NOT NULL, PRIMARY KEY
ID справочника технического обслуживания IDTechnical INT   NOT NULL, FOREIGN KEY
Название типа марки NameTypeMarka VARCHAR 35 NOT NULL, UNIQUE

 

USE autorem;

GO

CREATE TABLE TypeMarka

(IDTypeMarka INT IDENTITY CONSTRAINT TypeMarkaPrimary PRIMARY KEY,

IDTechnical INT NOT NULL,

NameTypeMarka VARCHAR (35) NOT NULL CONSTRAINT NameTypeMarkaUnique UNIQUE

CONSTRAINT TypeMarkaTechnicalForeign FOREIGN KEY (IDTechnical) REFERENCES Technical)

GO

Таблица Марка ( Marka ).

Таблица содержит данные о марках автотранспорта. Каждая марка имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDMarka)={IDTypeMarka, NameMarka, Capacity}, что аналогично R(Уникальный номер марки)={Уникальный номер типа марки, Название марки, Грузоподъемность}. Внешним ключом является IDTypeMarka (Уникальный номер типа марки). Атрибут IDMarka должен быть уникальным и не быть равным NULL, т.к. является первичным ключом. Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут NameMarka должен быть не равен NULL. Размер поля NameMarka должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 10 символов (к примеру, " КамАЗ-5320", "ЗиЛ-433100"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 5 символов, имеем размер поля NameCondition типа VARCHAR равным 15. Поле Capacity должен содержать дробные числовые значения о грузоподъемности автотранспорта, следовательно, поле Capacity имеет тип FLOAT (см. Таблица 5).

 

Таблица 5.

Название атрибута Имя поля Тип поля Размер Ограничения
Уникальный номер марки IDMarka INT   NOT NULL, PRIMARY KEY
Уникальный номер типа марки IDTypeMarka INT   NOT NULL, FOREIGN KEY
Название марки NameMarka VARCHAR 15 NOT NULL
Грузоподъемность Capacity FLOAT    

 

USE autorem;

GO

CREATE TABLE Marka

(IDMarka INT IDENTITY CONSTRAINT MarkaPrimary PRIMARY KEY,

IDTypeMarka INT NOT NULL,

NameMarka VARCHAR (15) NOT NULL,

Capacity FLOAT,

CONSTRAINT MarkaTypeMarkaForeign FOREIGN KEY (IDTypeMarka) REFERENCES TypeMarka)

GO

 

Таблица Транспорт ( Transport ).

Таблица содержит данные об автотранспорте. Каждый автотранспорт имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDTransport)={IDAutobase, IDMarka, GarageNumber, GosNumber}, что аналогично R(Уникальный номер единицы автотранспорта)={Уникальный номер автобазы, Уникальный номер марки, Гаражный номер, Госномер}. Внешними ключами являются IDAutobase (Уникальный номер автобазы), IDMarka(Уникальный номер марки). Атрибут IDTransport(Уникальный номер единицы автотранспорта) должен быть уникален и не равным NULL, т.к. является первичным ключом. Атрибут IDAutobase должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут GarageNumber должен быть уникален, т.к. каждая единица автотранспорта имеет свой гаражный номер, а также не равен NULL. Атрибут GosNumber должен быть уникален, т.к. каждая единица автотранспорта имеет свой уникальный госномер, выданный в соответствующей ведомости. Размер поля GosNumber должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 8 символам (к примеру, "В 990 АЕ", "КО 6718", "КУ 2664"), следовательно, принимая во внимание необходимость избыточности размера поля, имеем размер поля NameCondition типа VARCHAR равным 10. Размер поля GarageNumber должен содержать числовые значения о гаражном номере автотранспорта, следовательно, поле GarageNumber имеет тип INT (см. Таблица 6).

 

Таблица 6.

Название атрибута Имя поля Тип поля Размер Ограничения
Уникальный номер единицы автотранспорта IDTransport INT   NOT NULL, PRIMARY KEY
Уникальный номер автобазы IDAutobase INT   NOT NULL, FOREIGN KEY
Уникальный номер марки IDMarka INT   NOT NULL, FOREIGN KEY
Гаражный номер GarageNumber INT   NOT NULL, UNIQUE
Госномер GosNumber VARCHAR 10 UNIQUE

 

USE autorem;

GO

CREATE TABLE Transport

(IDTransport INT IDENTITY CONSTRAINT TransportPrimary PRIMARY KEY,

IDAutobase INT,

IDMarka INT,

GarageNumber INT NOT NULL CONSTRAINT GarageNumberTransportUnique UNIQUE,

GosNumber VARCHAR(10) CONSTRAINT GosNumberTransportUnique UNIQUE,

CONSTRAINT TransportAutobaseForeign FOREIGN KEY (IDAutobase)REFERENCES Autobase,         

CONSTRAINT TransportMarkaForeign FOREIGN KEY (IDMarka) REFERENCES Marka);

GO

 

Состояние единицы ( ConditionUnit )

Таблица содержит данные обо всех состояниях автотранспорта. Каждый автотранспорт имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDConditionUnit)={IDCondition, IDTransport, Working, Beginning, Theend}, что аналогично R(Уникальный номер работы)={Уникальный номер единицы автотранспорта, Уникальный номер состояния единицы, Описание работы, Начало состояния, Конец состояния}. Внешними ключами являются IDCondition (Уникальный номер состояния единицы), IDTransport (Уникальный номер единицы автотранспорта). Атрибут IDConditionUnit (Уникальный номер работы) должен быть уникален и не равным NULL, т.к. является первичным ключом. Атрибут IDCondition должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут IDTransport должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Размер поля Working должен содержать символьные значения и максимальный среднестатистический размер атрибута должен равен 200 символов (например, "покраска переднего левого крыла; покраска крыши а/м; покраска передней левой двери; подготовка к покраске и покраска передней левой стойки; чистка хромированных деталей"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 50 символов, имеем размер поля Working типа VARCHAR равным 250. Поля Beginning и Theend должны содержать даты постановки автотранспорта на ремонт и снятие с него, следовательно, типы этих полей определим как DateTime (см. Таблица 7).

 

Таблица 7.

Название атрибута Имя поля Тип поля Размер Ограничения
Уникальный номер работы IDConditionUnit INT   NOT NULL, PRIMARY KEY
Уникальный номер состояния единицы IDCondition INT   NOT NULL, FOREIGN KEY
Уникальный номер единицы автотранспорта IDTransport INT   NOT NULL, FOREIGN KEY
Описание работы Working VARCHAR 250  
Начало состояния Beginning DateTime    
Конец состояния Theend DateTime    

 

USE autorem;

GO

CREATE TABLE ConditionUnit

(IDConditionUnit INT IDENTITY CONSTRAINT ConditionUnitPrimary PRIMARY KEY,

IDCondition INT,

IDTransport INT,

Working VARCHAR(250),

Beginning DateTime,

Theend DateTime,

CONSTRAINT ConditionUnitConditionForeign FOREIGN KEY (IDCondition)REFERENCES Condition,              

CONSTRAINT ConditionUnitTransportForeign FOREIGN KEY (IDTransport) REFERENCES Transport);



2019-07-03 255 Обсуждений (0)
Обоснование выбора SQL 0.00 из 5.00 0 оценок









Обсуждение в статье: Обоснование выбора SQL

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (255)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)