Л. Партыка, И. И. Попов системы управления базами данных



бет69/215
Дата29.01.2022
өлшемі4,64 Mb.
#115817
1   ...   65   66   67   68   69   70   71   72   ...   215
Байланысты:
Голицына О Л Партыка Т Л Попов И И Системы

Нормализация таблиц

Все построенные таблицы находятся в первой нормальной форме, так как каждый столбец таблицы неделим и в рамках одной таблицы нет столбцов с одинаковыми по смыслу значениями.

Таблица Сводная_ведомость через столбцы ID_Студент и ID_План связывает информацию о студенте с информацией о конкретной дисциплине и фиксирует оценку, полученную студентом. Оценка и дата сдачи экзамена (зачета) однозначно зависят от содержимого столбцов ID_Студент и ID_План, которые представляют собой составной первичный ключ. Таким образом, все таблицы имеют первичные ключи, которые однозначно определяют строки и не избыточны, и можно говорить о том, что таблицы находятся во второй нормальной форме.

Рассмотрим подробнее таблицу Учебный_план, которая содержит перечень дисциплин текущего учебного плана. Первичным ключом таблицы служит столбец ID План, который однозначно характеризует каждую дисциплину учебного плана с точностью до семестра, т. е. для дисциплин, протяженность изучения которых более одного семестра, в таблице будет отведено столько строк, сколько семестров длится изучение дисциплины. Тогда хранение наименований дисциплин в таблице Учебный план становится избыточным: например, если изучение английского языка длится шесть семестров, то наименование «Английский язык» будет повторено в шести записях и есть вероятность сделать шесть различных ошибок при вводе одного и того же наименования.

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


  1. Теперь можно говорить о базе данных Сессия, реляционная схема которой представлена следующими пятью таблицами:

  2. Студенты — содержит по одной строке для каждого из студентов;

  3. Учебный план — содержит по одной строке для отдельной дисциплины отдельного семестра;

  4. Дисциплины — содержит по одной строке для наименования дисциплины;

  5. Сводная ведомость — содержит по одной строке для каждого результата сдачи отдельным студентом отдельной дисциплины;

  6. Кадровый состав — содержит по одной строке для каждого из преподавателей.

На рис. 2.25, а в графической форме изображены перечисленные таблицы, их столбцы, первичные и внешние ключи. Задание первичных и внешних ключей сопровождается построением дополнительных структур — индексов, обеспечивающих быстрый доступ к данным через значение ключа.

Рис. 2.25. Структура базы данных Сессия: а — общая графическая схема БД; б — характеристики таблиц БД

Таблица «Студенты» 


Наименование столбца

Тип данных

Ограничения

ID_Студент

Целое число

Значение уникально

Фамилия

Строка символов размером 30

Значение не должно быть пустым

Имя

Строка символов размером 15

Значение не должно быть

пустым


Отчество

Строка символов размером 20

Значение не должно быть пустым

Номер_Группы

Целое число

Значение не должно быть

пустым


Адрес

Строка символов размером 30

 

Телефон

Строка символов размером 8

 

Таблица «Дисциплины»

Наименование столбца

Тип данных

Ограничения

ID_Дисциплина

Целое число

Значение уникально

Наименование

Строка символов размером 20

Значение уникально

Таблица «Кадровый состав» 

Наименование столбца

Тип данных

Ограничения

ID_Преподаватель

Целое число

Значение уникально

Фамилия

Строка символов размером 30

Значение не должно быть пустым

Имя

Строка символов размером 15

Значение не должно быть пустым

Отчество

Строка символов размером 20

Значение не должно быть пустым

Должность

Строка символов размером 20

Значение не должно быть пустым

Кафедра

Строка символов размером 3

Значение не должно быть пустым

Адрес

Строка символов размером 30

 

Телефон

Строка символов размером 8

 

Таблица «Учебный план» 

Наименование столбца

Тип данных

Ограничения

ID_План

Целое число

Значение уникально

ID_Дисциплина

Целое число

Значение не должно быть пустым

Семестр

Целое число

Значение не должно быть пустым и должно находиться в интервале от 1 до 10

Количествочасов

Целое число

 

ID_Преподаватель

Целое число

 

Таблица «Сводная ведомость»

Рис. 2.25. Структура базы данных Сессия (окончание)

Все таблицы базы данных Сессия находятся в третьей нормальной форме:



  • каждый столбец таблицы неделим, и в рамках одной таблицы нет столбцов с одинаковыми по смыслу значениями
    (1НФ);

  • первичные ключи однозначно определяют запись и не избыточны, все поля каждой из таблиц зависят от ее первичного ключа (2НФ);

  • значение любого поля, не входящего в первичный ключ, не зависит от значения другого поля, тоже не входящего в
    первичный ключ (ЗНФ).

Следующий этап проектирования — определение доменов (типов) данных, хранящихся в столбцах таблиц. Параллельно с заданием типа необходимо сформулировать ограничения целостности, связанные с типом, — перечень допустимых значений типа.

Исходя из особенностей данных и их функционального назначения, требуется задать способ представления и границы возможных изменений для каждого из столбцов таблиц. При этом необходимо ответить на вопрос, данные каких типов должны храниться в столбцах и какова их максимальная длина (например, если в столбце предполагается хранить процентные значения, то достаточно будет целого типа данных длиной 1 байт, так как диапазон возможных значений от 0 до 255; если для данных столбца выбирается тип «строка символов», то желательно указать максимальный размер данных столбца и т. п.).

Далее, в каждой таблице должны быть выделены столбцы, которые обязательно должны быть заполнены при создании отдельной строки таблицы. Задание такого ограничения целостности не позволит, например, ввести в таблицу Студенты строку, в которой не указан номер группы. Если подобные ограничения целостности не будут заданы, в таблице могут появиться строки, которые не будут учтены при выполнении функций по обработке данных: появление в таблице Студенты строки без номера группы приведет к ошибке при формировании ведомости.

Следующий важный момент — задание для столбцов значений по умолчанию. Значение по умолчанию впоследствии будет автоматически вводиться в указанный столбец для каждой строки таблицы. Например, в столбец Дата_сдачи таблицы Сводная_ведомость при заполнении очередной строки может автоматически заноситься текущая дата.

На рис. 2.25, б представлены таблицы базы данных Сессия с типами данных столбцов и предлагаемыми ограничениями целостности.

Все примеры использования языка SQL (Structured Query Language), рассматриваемые в гл. 4, будут построены на основе этой учебной базы данных Сессия.




Достарыңызбен бөлісу:
1   ...   65   66   67   68   69   70   71   72   ...   215




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет