АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ФГБОУ ВПО «Воронежский государственный технический университет»

Читайте также:
  1. II. Организационно-технический раздел.
  2. Алматинский государственный университет им. Абая
  3. АСТРАХАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
  4. в) государственный герб РФ
  5. Глава 6. ГОСУДАРСТВЕННЫЙ КОНТРОЛЬ (НАДЗОР) ЗА СОБЛЮДЕНИЕМ ТРЕБОВАНИЙ ТЕХНИЧЕСКИХ РЕГЛАМЕНТОВ
  6. Глава IV. Государственный контроль за деятельностью в области гражданской авиации
  7. Государственная регистрация и государственный учет воздушных судов
  8. Государственный аппарат в годы гражданской войны
  9. Государственный аппарат в период Великой Отечественной войны
  10. Государственный аппарат на примере Российской Федерации
  11. Государственный аппарат России в годы первой мировой войны
  12. Государственный визит является визитом высшей категории

Естественно-гуманитарный факультет

 

 

Кафедра САУМС

 

 

по лабораторной работе №3

по курсу «Информационные технологии»

 

«Создание реляционной схемы базы данных с использованием средств языка SQL»

 

 

Выполнил: студент группы ИС-101

Кущенко С. И.

Проверила: Новикова Екатерина Ивановна

 

 

Воронеж

2012 г.

 

Цель работы: Создать реляционную схему базы данных с использованием средств языка SQL.

Используемые программно-аппаратные средства: ПЭВМ класса IBM PC стандартной конфигурации, программное средство для создания реляционных СУБД Microsoft Access.

Введение в SQL

 

В современных реляционных СУБД для определения структу­ры базы данных можно использовать язык SQL (Structured Query Language). Совокупность команд языка SQL, используемую для создания базы данных и ее объектов, называют языком определе­ния данных или командами DDL (Data Definition Language).

Для создания таблиц и описания ее столбцов используется ин­струкция CREATE TABLE. Синтаксис этой инструкции в СУБД Microsoft Access представлен ниже:

CREATE TABLE Имя_создаваемой_таблицы

(Имя_первого_столбца Тип_данных_первого_столбца [ (Раз­мер) ] [NOT NULL] [CONSTRAINT Ограничение_первого„столбца]

[, описания других столбцов ]

[, CONSTRAINT Первое_ограничение_таблицы ]

[, описания других ограничений таблицы ]);

Примечание. Квадратными скобками обозначены элементы, которые могут отсутствовать в инструкции. Необязательный пара­метр (Размер) ограничивает число символов, которое может содер­жаться в столбце, имеющего текстовый тип данных. Если этот па­раметр опущен, то устанавливается длина 255 символов.

Тип данных для столбца в инструкции CREATE TABLE должен быть выбран из числа типов данных SQL Access (таблица).

Ограничения представляют собой определенные условия, ко­торым должны удовлетворять данные, записываемые в базу дан­ных. Проверка на выполнение этих условий проводится при каждой операции вода или модификации данных. Данные, не соответст­вующие ограничениям, в базу данных не записываются, а на внеш­ний интерфейс выводится сообщение об ошибке.

В целом, ограничения бывают нескольких видов: - ограничения по ключам (первичного и внешнею ключей);

- ограничения на значение.

Синтаксис предложения CONSTRAINT имеет две формы. Первая применяется при установке ограничений для одного столб­ца и записывается после определения типа данных столбца.

CONSTRAINT Имя_ограничения {PRIMARY KEY | REFERENCES Внешняя_таблица (Внешний_столбец)}

Примечание. Фигурными скобками ({}) обозначена возмож­ность выбора одного из элементов, разделенных чертой (|).

Ключевые слова PRIMARY KEY и REFERENCES использу­ются для создания первичного и внешнего ключей соответственно. Описанная выше форма задания ограничения применяется, когда из одного столбца. Ограничения являются объектами базы данных, поэтому каж­дому ограничению должно быть присвоено имя. Ограничение пер­вичного ключа имеет, как правило, имя PrimaryKey. Имя ограниче­ния внешнего ключа включает имя таблицы, на которую он ссыла­ется и примечание FK: Внешняя_таблица_FK.

Когда первичный ключ состоит более, чем из одного столбца, применяют другой синтаксис предложения CONSTRAINT, который описывается в этом случае как ограничение таблицы и выглядит следующим образом:

CONSTRAINT Имя_ограничения PRIMARY KEY (Первый_столбец_первичного_ключа,

Второй_стол6ец_первичного_ключа [,...]] )

Всякий раз, когда создается внешний ключ, вводится новое ограничение ссылочной целостности, которое заключается в сле­дующем: все значения атрибута внешнего ключа должны сущест­вовать среди значений атрибута первичного ключа, на который этот внешний ключ ссылается.

СУБД всегда обеспечивает соблюдение этого правила. Стан­дартные правила поддержания ссылочной целостности следующие.

- Если меняется значение первичного ключа родительской строки, то ограничение ссылочной целостности при этом наруша­ется. СУБД, по умолчанию, не разрешает обновление первичного ключа в родительской строке, если имеются связанные с ней до­черние строки.

- При удалении родительской строки, имеющей связанные с ней дочерние строки, правило ссылочной целостности также нару­шается. Это действие будет запрещено со стороны СУБД.

- Вставка новой строки в родительской таблице всегда разре­шена. поскольку не затрагивает ограничение ссылочной целостно­сти.

Такие правила поддержания ссылочной целостности иногда оказываются неудобными, поэтому часто применяются операции каскадного удаления и обновления по отношению к первичному и внешнему ключу. Другими словами, при обновлении значения пер­вичного ключа можно автоматически обновлять значения соответ­ствующих внешних ключей. Такая процедура называется каскад­ным обновлением. Аналогичным образом, СУБД может автомати­чески удалять все дочерние строки, связанные с удаляемой роди­тельской строкой.

Синтаксис расширенного определения внешнего ключа:

CONSTRAINT Имя_ограничения FOREIGN KEY (Стол- бец_внешнего_ключа) REFERENCES Внешняя_таблица (Внешний столбец) [ON UPDATE {NO ACTION | CASCADE}] ON DELETE {NO ACTION | CASCADE}]

Используя установку ON UPDATE NO ACTION или опустив предложение ON UPDATE, нельзя изменять значение первичного ключа родительской таблицы, если ему соответствует одна или не­сколько записей в дочерней таблице, В случае применения уста­новки CASCADE новые значения полей первичного ключа главной таблицы будут присвоены соответствующим полям внешнего клю­ча связанной таблицы. Если воспользоваться установкой ON DELETE NO ACTION или опустить предложение ON DELETE, то нельзя будет удалить запись родительской таблицы при условии, что с ней связана хоть одна запись дочерней таблицы. При использовании CASCADE все записи подчиненной таблицы, связанные с удаляемой записью главной таблицы, будут удалены.

 


 

Выбранная база данных

 

 

Рисунок 1 - Физическая модель базы данных


 

Инструкции CREATE TABLE

 

CREATE TABLE Склад

(№Склада INTEGER NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,

НаименованиеПродукции TEXT(255) NOT NULL CONSTRAINT Продукция_FK REFERENCES Продукция(НаименованиеПродукции),

МестоРасположенияИнгридиента НаименованиеПродукции TEXT(255) NOT NULL CONSTRAINT Рецепт_FK REFERENCES Рецепт(НаименованиеПродукции),

НаименованиеИнгридиента TEXT(255) NOT NULL CONSTRAINT Поставщики_FK REFERENCES Поставщики(НаименованиеИнгридиента),

КоличествоИнгридиентов INTEGER NOT NULL,

КоличествоПродукции INTEGER NOT NULL,

МестоРасположенияПродукции TEXT(255) NOT NULL);

 

CREATE TABLE Сотрудники

(№Сотрудника INTEGER NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,

Ф_И_О TEXT(255) NOT NULL,

Телефон INTEGER NOT NULL,

МестоРаботы TEXT(255) NOT NULL,

Адрес TEXT(255) NOT NULL,

Должность TEXT(255) NOT NULL);

 

CREATE TABLE Рецепт

(№Рецепта INTEGER NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,

НаименованиеРецепта TEXT(255) NOT NULL,

НаименованиеИнгридиента TEXT(255) NOT NULL,

КоличествоИнгридиентов INTEGER NOT NULL,

НаименованиеПродукции TEXT(255) NOT NULL CONSTRAINT Py UNIQUE);

 

CREATE TABLE Продукция

(№Продукции INTEGER CONSTRAINT PrimaryKey PRIMARY KEY,

 

НаименованиеПродукции TEXT(255) NOT NULL CONSTRAINT Pyu UNIQUE CONSTRAINT ЗаказКлиента REFERENCES ЗаказКлиента (НаименованиеПродукции),

Стоимость INTEGER NOT NULL,

НазваниеФирмыПоставщика TEXT(255) NOT NULL);

 

CREATE TABLE Поставщики

(№Поставщика INTEGER NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,

Ф_И_О_Поставщика TEXT(255) NOT NULL,

НазваниеФирмыПоставщика TEXT(255) NOT NULL,

Телефон INTEGER NOT NULL,

Адрес TEXT(255) NOT NULL,

НазваниеПоставляемогоТовара TEXT(255) NOT NULL,

НаименованиеИнгридиента TEXT(255) NOT NULL CONSTRAINT Pu UNIQUE);

 

CREATE TABLE Заказчик

(№Заказчика INTEGER NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,

Ф_И_О_КонтактногоЛица TEXT(255) NOT NULL,

НазваниеФирмы TEXT(255) NOT NULL CONSTRAINT P UNIQUE,

Телефон INTEGER NOT NULL,

Адрес TEXT(255) NOT NULL);

 

CREATE TABLE ЗаказКлиента

(№Заказа INTEGER NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,

№Сотрудника INTEGER NOT NULL CONSTRAINT Сотрудники_FK REFERENCES Сотрудники(№Сотрудника),

НазваниеФирмы TEXT(255) NOT NULL CONSTRAINT Заказчик_FK REFERENCES Заказчик(НазваниеФирмы),

НаименованиеПродукции TEXT(255) NOT NULL CONSTRAINT PyHHu UNIQUE CONSTRAINT Продукция REFERENCES Продукция(НаименованиеПродукции),

ДатаЗаказа DATETIME NOT NULL,

ДатаВыполнения DATETIME NOT NULL,

СуммаЗаказа INTEGER NOT NULL,

КоличествоТовара INTEGER NOT NULL);

 

 

Рисунок 2 - Схема данных компании по производству пищевой продукции

Вывод: освоил создание реляционной схемы базы данных по заданной физической модели с использованием средств языка SQL в среде Microsoft Access.

 


Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.009 сек.)