|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ФГБОУ ВПО «Воронежский государственный технический университет»Естественно-гуманитарный факультет
Кафедра САУМС
по лабораторной работе №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.018 сек.) |