Информационная система Деканата

Автор работы: Пользователь скрыл имя, 06 Декабря 2010 в 08:15, Не определен

Описание работы

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

Файлы: 1 файл

Записка.doc

— 1.45 Мб (Скачать файл)

    Пусть отношение имеет не один потенциальный  ключ (первичный), т.е. отношение имеет два или более потенциальных ключа. Потенциальные ключи могут быть сложными и иметь общие атрибуты. В этом случае определение ЗНФ заменяется более строгим - нормальной формой Бойса-Кодда (НФБК). В случае одного потенциального ключа определение ЗНФ и НФБК эквивалентны (левая и правая часть записи функциональной зависимости ( ФЗ ) называются соответственно детерминантом и зависимой частью). Отношение находится в НФБК, если каждая нетривиальная неприводимая слева ФЗ обладает потенциальным ключом в качестве детерминанта. Под детерминантой понимаем некоторый атрибут, возможно составной, от которого какой-либо другой атрибут зависит функционально полно. Зависимость называется нетривиальной, если правая часть зависимости является подмножеством левой. Множество ФЗ называется неприводимым, если правая часть является одноэлементным множеством. Левая часть (детерминант) каждой ФЗ множества S является неприводимой, т.е. ни один атрибут не может быть опущен из детерминанта без изменения замыкания ST (неприводимость слева).

    2.3 Описание логической схемы базы  данных.

    В представляемой БД “Деканат” содержится информация, использующаяся в университете. РБД состоит из отношений Студент, Преподаватели, Предметы.

    Отношение Студент содержит по одному кортежу на каждого из студента и состоит из атрибутов ФИО – фамилия , имя , отчество студента, дата_рожд – дата рождения, адрес, факультет, специальность, год_поступления, номер_группы, мед_осмотр, флюрогр, №зачетки . Первичный ключ отношения – атрибут №зачетки.

    Отношение Препод состоит из атрибутов №препод,ФИО – фамилия , имя, отчество преподавателя, должн – должность преподавателя, кафедра. Первичный ключ отношения – атрибут №препод.

    Отношение Предмет состоит из атрибутов №предм, название, форма_контр, №препод, дата_сдачи. Первичный ключ отношения – атрибут №предм.

    Отношение СдачаЗач состоит из атрибутов №зачетки, №предм, сдал_несд, дата_сдачи.

    Отношение СдачаЭкз состоит из атрибутов Код, №зачетки, №предм, дата_сдачи, оценка. Первичный ключ отношения – атрибут Код. 

    Логическая  схема РБД имеет вид:

    Студент
ФИО дата_рожд адрес
факультет специальность год_поступления
№группы мед_осмотр флюрогр
№зачетки 

    Предметы

    №предм     название     форма_контр
    №препод     дата_сдачи      
 

    Преподаватели

    №прпод     ФИО     должн     кафедра
 
 

    СдачаЗач

    №зачетки     №предм     сдал_несд     дата_сдачи
 

    СдачаЭкз

    Код     №зачетки     №предм     дата_сдачи     оценка

    3 РАЗРАБОТКА ПРОЕКТА  ПРИЛОЖЕНИЯ

    3.1 Описание данных. 

                      Таблица 1

Элемент данных Описание Объект Тип

данных

Условие на значение
ФИО Фамилия и инициалы студента Студент Текстовый Обязательное
Дата_рожд
    Дата рождения студента
Студент Числовой Обязательное 
Адрес Адрес студента Студент Текстовый Обязательное
Факультет Факультет обучения студента Студент Текстовый Обязательное
Специальн ость Специальность обучения студента Студент Текстовый Обязательное
Год_поступления
Год_поступления  студента
Студент Числовой Обязательное
№группы №группы студента Студент Числовой Обязательное
Мед_осмотр Мед.осмотр Студент Логический Обязательное
Флюрогр Флюрография Студент Логический Обязательное
№зачетки Номер зачётки студента Студент Числовой Обязательное  (ключ)
№предм Номер предмета Предмет Числовой Обязательное  (ключ)
Название
Название
Предмет Текстовый Обязательное
Форм_контр Форма контроля Предмет Текстовый Обязательное
№препод Номер преподавателя Предмет Числовой Обязательное
Дата_сдачи Дата сдачи Предмет Числовой Обязательное
№препод Номер преподавателя Препод Числовой Обязательное  ( ключ )
ФИО ФИО преподавателя Препод Текстовый Обязательное
Должн Должность Препод Текстовый Обязательное
Кафедра Кафедра Препод Текстовый Обязательное
№зачетки Номер зачетки СдачаЗач Числовой Обязательное
№предм Номер предмета СдачаЗач Числовой Обязательное
Сдал_несд Сдал /не сдал зачет СдачаЗач Логический Обязательное
Дата_сдачи Дата  сдачи
    СдачаЗач
Числовой Обязательное
Код Код
    СдачаЭкз
Числовой Обязательное  ( ключ )
№зачетки Номер зачетки
    СдачаЭкз
Числовой Обязательное
№предм Номер предмета
    СдачаЭкз
Числовой Обязательное
Дата_сдачи Дата  сдачи
    СдачаЭкз
Числовой Обязательное
Оценка Оценка  за экзамен
    СдачаЭкз
Числовой Обязательное
 
 

    3.2 Создание отношения БД с помощью  языка SQL.

   В 1974 г. Дональд Д. Чамберлин из исследовательской  лаборатории IBM в Сан-Хосе, США, предложил спецификации декларативного, непроцедурного реляционного языка, названного SEQUEL (Structured English Query Language) -структурированный английский язык запросов. Пересмотренная версия этого языка SEQUEL/2 была разработана в 1976-1977 гг., и он приобрел свое окончательное название - Structured Query Language (SQLj. Язык основан на теоретическом языке реляционного исчисления, разработанного Э.Коддом.

   Язык  SQL стал открытой собственностью IBM. На его основе IBM разработала для больших вычислительных машин реляционные СУБД: System R и DB2. Однако версии языка SQL в этих СУБД значительно различались.

   Еще до выхода на рынок программного обеспечения  коммерческих продуктов IBM компания Relation Software Inc. (ныне это Oracle Corporation) объявила о выпуске реляционной СУБД ORACLE, основанной на языке SQL. Уже тогда система ORACLE стала одной из доминирующих коммерческих СУБД. Предваряя многоплатформенную стандартизацию SQL, Oracle Corporation осуществила в течение нескольких лет перенос своего флагманского продукта на множество различных аппаратных и программных платформ - от ПК до больших вычислительных систем. Пути поставщиков ранних реляционных СУБД для мини-ЭВМ разошлись. Такие крупные разработчики как Oracle Corporation и ранние лидеры рынка СУБД для UNIX:Uniry Corp. и Informix Corp. использовали язык SQL для мини-ЭВМ. В СУБД Ingres компании Relational Technology, шс.(ныне Ingres Corp.) использовался язык QUEL. Позже язык был назван QBE (Query by Example) - язык запросов по образцу. Это мощный реляционный язык, основанный на языке реляционного исчисления. Позднее Ingres Corp. ввела в СУБД Ingres поддержку языка SQL.

    В 80-х г. г. SQL стал доминирующим языком в среде реляционных СУБД для ЭВМ среднего класса и больших вычислительных машин. На персональные компьютеры SQL пришел в результате адаптации СУБД, разработанных для больших и средних ЭВМ.По мере пополнения рынка новыми коммерческими программными продуктами, основанными на реляционной модели, появлялись новые языковые средства обработки отношений. Для ПК доминирующим языком баз данных стал язык, разработанный компанией Ashton-Tate в семействе продуктов dBase (dBase II и III, а позднее - dBase III+, dBase IV). В настоящее время компанией Borland, поглотившей Ashton-Tate, выпущен ряд последующих версий этой системы. Даже после реализации SQL на ПК в середине 80-х гг. язык dBase остался главным языком на платформе ПК.Конкуренты компании Ashton-Tate - Fox Software и Nantucket Corp. -приняли некоторые собственные варианты языка dBase, и в начале 90-х гг. получила признание новая категория реляционных языков баз данных (в дополнение к SQL): язык Xbase. В 1992 г. основные поставщики dBase-подобных программных продуктов и языков инициировали деятельность по стандартизации языка Xbase так же, как осуществлялась формальная стандартизация вариантов SQL. Необходимо отметить, что все три лидера этой индустрии - Ashton-Tate, Fox Software и Nantucket - были позднее поглощены другими поставщиками - компаниями Borland, Microsoft и Computer Associates соответственно. Язык Xbase не является чисто реляционным языком. Хотя он и оперирует табличными структурами данных, его манипулятивные средства представляют собой смесь набора основных реляционных операций (селекция, проекция, соединение и некоторых других) со средствами традиционной "позаписной" (record-by-record) обработки плоских файлов. Одной из причин преуспевания SQL послужило формирование Американским национальным институтом стандартов (American National Standards Institute, ANSI) комитета X3H2 по разработке стандартов языков баз данных. Международная организация по стандартизации (International Standards Organization, (ISO)) в рамках технического комитета ТС97 (называемого теперь ISO/IECJTC1) также вела работу по созданию стандарта языков реляционных баз данных. В середине 80-х г.г. как ANSI, так и ISO одобрили стандарты SQL (ANSI - в 1986 г., a ISO - в начале t987 г.). Первый стандарт SQL-86 был весьма неполным в части функциональных возможностей систем баз данных. В 1989 г. была принята пересмотренная версия стандарта SQL, которая отличалась от стандарта 1986 г. главным образом воаможностями поддержки целостности по ссылкам. Результатом стал стандарт SQL2 или SQL-92. Работа над SQL3 началась еще в 1990 г. параллельно с SQL2. SQL3 включает объектно-ориентированные расширения языка, а также дополнительные реляционные возможности. В конце 1999 года был опубликован стандарт SQL-99, который однако официально не носит названия SQL3. Стандарт языка релевантен в такой степени, в какой он является полезным и используемым. Преимущества - стандарта SQL-99 модульность и повторное использование. Недостатки этого стандарта: текстуальные языки запросов и процедурные интерфейсы (Application Program Interface (API)), которые появились в дни символьных терминалов, и не являются подходящей моделью для управления сложными объектами, когда доминируют графические пользовательские интерфейсы. Разработчики отдают предпочтение компонентному представлению ИС и использованию объектно-ориентированных СУБД (ОРСУБД) как среды для таких компонентов. Если язык SQL-92 стандартизует простую систему типов данных н множество выражений для запросов, то в ОРСУБД БД включает значительно больше типов данных и функций. Например, расширения для ГИС, поставляемые INFORMIX, включают около пятидесяти типов данных и примерно тысячу функций. В рамках стандарта SQL-99 вопросы поддержки этих типов данных и функций решаются, однако их реализация слишком с ложна. Достигнутое в настоящее время развитие интерфейсов прикладного программирования предусматривает использование либо подхода с встроенными языками SQL/C и Java (SQLJ), либо с интерфейсом уровня вызовов (Call Level Interface(CLI)) - SQL-99/CLI, ODBC, JDBC. В прошлом язык SQL был предназначен для встраивания в такие языки высокого уровня, как "COBOL" или "С" и лишь совсем недавно - в языки четвертого поколения (4GL). Кроме перечисленных версий SQL существует множество версий языка для СУБД, поддерживающих архитектуру клиент-сервер: Sybase SQL Server, Microsoft SQL Server (MS SQL), IBM OS/2 Extended Edition Database Manager, DEC Rdb/VMS, Oracle Server, tlnformix Universal Database Server, My SQL и другие. В настоящее время продолжаются интенсивные разработки в области языковых средств БД, в том числе SQL, Xbase и стандарта объектного языка, разрабатываемого группой по управлению объектными БД (Object Database Management Group, (ODMG)). Ведутся работы по созданию языков TSQL, TEMPSQL, HSQL, ориентированных на временные БД. Язык SQL описан в литературе и позволяет: 1) создавать объекты БД, включая спецификации целостности (целостности домена, табличной целостности, ссылочной целостности, правил бизнеса обеспечения целостности) средствами языка DDL (Data Definition Language); 2) манипулировать данными с помощью команд: добавления, модификации и удаления записей отношений и операций реляционной алгебры над отношениями средствами языка DML (Data Manipulation Language); 3) выполнять операции выборки данных - как из одного отношения, так и из семантически связанных отношений (команды этой группы относятся к командам DML); 4) осуществлять определение прав и управление правами пользователей средствами языка управления данными DCL (Data Control Language); 5)осуществлять управление параллелизмом доступа к данным с помощью блокировок различных категорий; 6) осуществлять управление выполнением транзакций.

    Команды создания таблиц (команды класса DDL)

    Структура таблицы во всех диалектах языка  SQL, создается командой CREATE TABLE.

    CREATE TABLE < Имя таблицы > (< Имя столбца > < Тип данных >[(< Размер >)] [< Ограничения на столбец >], < Имя столбца > < Тип данных >[(< Размер >)],...,

    < Имя столбца > < Тип данных > [(< Размер >)],..., < Ограничения на таблицу > (< Имя столбца >[,< Имя столбца >... ])...)

    Различают следующие виды ограничений:

    1) ограничения на столбец - средство обеспечения целостности домена и табличной целостности;

    2) ограничения на таблицу - средство обеспечения ссылочной целостности БД. Объявление ограничений выполняется следующим образом: ограничения на значения данных указываются после определения столбца,  ограничения на таблицу указываются после определения последнего столбца.

    Модификация структуры таблицы выполняется  командой ALTER TABLE. Команда не является частью стандарта ANSI, однако широко применяется в СУБД. Обычно команда используется для добавления, удаления, изменения размеров столбцов и их ограничений. Синтаксис команды, предназначенной для добавления столбца выглядит так.

    ALTER TABLE < имя таблицы > ADD < имя столбца > < тип данных > <размер >.

    По  этой команде для существующих в  таблице строк добавляется новый  столбец, в который заносятся NULL значения. Новый столбец добавляется в конец таблицы. При добавлении нескольких столбцов их имена и определения отделяются запятыми. Команда является нестандартной, поэтому каждый раз при необходимости работы с ней надо обращаться к документации конкретной СУБД.

    Если  СУБД не поддерживает эту команду, то для изменения структуры заполненной данными таблицы рекомендуется создать новую структуру, а затем ее заполнить из старой таблицы командой INSERT с подзапросом SELECT. Удаление таблицы может выполнить только ее владелец. Перед удалением таблицы ее необходимо предварительно очистить от данных, затем можно удалить саму таблицу командой

        DROP TABLE < имя таблицы >.

    В пакете Access отношения БД создаются с использованием оболочки (создание таблиц средствами Access). Таблицы базы данных приведены в приложении 1.

    Система формирует соответствующий DDL-запрос, посредством оператора CREATE TABLE. Создание отношений средствами SQL2 при помощи оператора CREATE TABLE является общим для всех типов коммерческих продуктов реляционного типа.

      Ниже  приводится построение таблицы БД  «Деканат» с помощью оператора CREATE TABLE

      CREATE TABLE Студенты (ФИО VARCHAR(50) NOT NULL, Номер_зач VARCHAR(50) NOT NULL, Специальность VARCHAR(50) NOT NULL, Группа VARCHAR(50) NOT NULL, Дата_рождения VARCHAR(50) NOT NULL, Адрес VARCHAR(50) NOT NULL, Год_поступления VARCHAR(50) NOT NULL, PRIMARY KEY (ФИО), FOREIGN KEY Р1(Номер_зач)

    3.3 Заполнение базы данных.

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

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

    3.4 Организация запросов к базе  данных средствами языка SQL.

    Формирование  запросов - основная операция языка  SQL, называемая отображением. Синтаксически это блок - SELECT-FROM-WHERE.

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

    Формат  команды выборки из одной таблицы:

    SELECT [DISTINCT|ALL] < целевой список > FROM < имя таблицы>, WHERE < предикат >,

      где целевой список – список  имен столбцов и/или выражений  над столбцами, элементы списка указываются через запятую (порядок элементов данных в целевом списке определяет порядок выборки данных);

    Имя таблицы – имя тaблицы,  из которой  выбираются данные;

    Предикат - условие выборки.

    Условие выборки может включать следующие  операторы:

  1. Арифметические (=, !=, > ,<, >=, <=);
  2. Логичские (AND, OR, NOT);

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

    Альтернативой DISTINCT является ключевое слово ALL. Оно включает в состав отобранного множества строк все повторения.

Информация о работе Информационная система Деканата