База данных для информационной системы "Музыкальная школа"
Проектирование информационной системы "Музыкальная школа". Выбор автоматизируемых функций и программного обеспечения. Графическое представление модели базы данных. Выявление и устранение дублирования атрибутов и связей. Проектирование доступа к базе.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 03.03.2016 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4.Эквивалентными являются следующие сущности:
«Телефон» в функции 1 «Учет кадров»;
«Телефон» в функции 2 «Прием учащихся»;
Составим из них сущность «Телефон»:
4. Эквивалентными являются следующие сущности:
«Инструмент» в функции 2 «Прием учащихся»;
«Инструмент» в функции 4 «Планирование учебного процесса»;
Составим из них сущность «Инструмент»:
5. Эквивалентными являются следующие сущности:
«Предмет» в функции 3 «Сдача экзаменов»;
«Предмет» в функции 4 «Планирование учебного процесса»;
«Предмет» в функции 5 «Проведение занятий».
Составим из них сущность «Предмет»:
4.2 Выявление категорий и синтез обобщающих сущностей
Сущностями-категориями являются сущности «Сотрудник», «Учащийся» и «Родственник», обобщающей для них сущностью является «Личность». Также сущностью-категорией является сущность «Преподаватель», обобщающей сущностью для нее выступает «Сотрудник».
4.3 Выявление и устранение дублирования атрибутов и связей
Дублирование атрибутов и связей не выявлено.
4.4 Графическое представление глобальной ER-модели
Графическое представление глобальной ER-модели представлено на странице 40. Также выявлена сущность-категория «Завуч», обобщающей для нее выступает сущность «Преподаватель».
4.5 Спецификация ограничений и правил поддержания целостности
Анализ данных на этом этапе не потребовал введения дополнительных ограничений и правил.
4.6 Вывод
В результате проведения данного этапа была получена глобальная модель данных, было приведено ее графическое представление, дополнительных ограничений и правил выявлено не было.
5. ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ SQL-МОДЕЛИ
Данный раздел посвящен проектированию реляционной SQL-модели. Здесь выполняется перевод глобальной ER-модели в реляционную форму, специфицируются ограничения и правила поддержания целостности на реляционном уровне, записывается SQL-код для создания реляционной модели.
5.1 Перевод глобальной ER-модели в реляционную форму
Устранение категорий
Из категорий «Сотрудник», «Учащийся», «Родственник» и обобщающей сущности «Личность», а также из категорий «Преподаватель» и «Завуч» составим следующие независимые сущности
Избавление от связей М:М
Заменим связь «многие ко многим» связью «один ко многим»
Замена явных связей 1:М неявными
Производится дублирование первичного ключа родительской сущности в дочерней сущности.
В результате были получены следующие сущности:
1. Сотрудник (код сотрудника, ФИО, пол, адрес, стаж, дата рождения, код паспорта, дата выдачи, кем выдан);
1 Телефон (номер телефона, тип телефона, примечания);
2 Должность (код должности, название должности);
3 Специальность (код специальности, название специальности);
4 Контакт (код сотрудника, номер телефона);
5 Диплом (код диплома, код сотрудника, код специальности, название учебного заведения, дата окончания учебного заведения);
6 Карьера (код сотрудника, код должности, номер приказа, дата поступления, оклад, дата увольнения);
7 Учащийся (код учащегося, ФИО, номер учебного плана, дата рождения, пол, адрес, год обучения, код свидетельства о рождении, дата выдачи, кем выдано);
8 Родственник (код родственника, ФИО, место работы);
9 Приказ (номер приказа, дата подписания, код сотрудника);
10 Инструмент (код инструмента, название инструмента);
11 Льгота (код льготы, название льготы);
12 Контакты (код учащегося, номер телефона);
13 Семья (код учащегося, код родственника);
14 Уч-П (код учащегося, номер приказа, дата поступления);
15 Специализация (код учащегося, номер приказа, код инструмента);
16 Условия обучения (код учащегося, код льготы, плата за обучение, дата назначения льготы, дата снятия льготы);
17 Предмет (код предмета, название предмета, код сотрудника);
18 Экзамен (год, номер экзамена, код сотрудника, код предмета, код учащегося, дата, время начала, время окончания, кабинет, тип экзамена, оценка);
19 Учебный план (номер учебного плана, дата утверждения учебного плана, особенности, код сотрудника);
20 Четверть (год, номер четверти, номер учебного плана);
21 План_Четверть (номер учебного плана, год, номер четверти);
22 У-С (год, номер четверти, код предмета, количество часов);
23 Занятие (дата, время начала, время окончания, код сотрудника, код предмета, код учащегося, оценка).
5.2 Спецификация ограничений и правил поддержания целостности
Были выявлены следующие правила поддержания целостности:
- при удалении или изменении первичного ключа «код сотрудника» в родительской таблице «Сотрудник» автоматически удаляются или изменяются внешние ключи в следующих дочерних таблицах: «Контакт», «Диплом», «Карьера», «Уч-П», «Экзамен», «Учебный план», «Предмет», «Занятие»;
- при удалении или изменении первичного ключа «код учащегося» в родительской таблице «Учащийся» автоматически удаляются или изменяются внешние ключи в следующих дочерних таблицах: «Контакты», «Уч-П», «Специализация», «Условия обучения», «Экзамен», «Занятие»;
- при удалении или изменении первичного ключа «номер телефона» в родительской таблице «Телефон» автоматически изменяются или удаляются внешние ключи в дочерних таблицах «Контакт» и «Контакты»;
- при удалении или изменении первичного ключа «код предмета» в родительской таблице «Предмет» автоматически удаляются или изменяются внешние ключи в следующих дочерних сущностях «Экзамен», «У-С», «Занятие»;
-при удалении или изменении первичного ключа «номер учебного плана» в родительской таблице «Учебный план» автоматически удаляются или изменяются внешние ключи следующих дочерних таблиц: «Учащийся», «Четверть»;
- строго запрещается удалять или изменять первичный ключ «номер четверти» родительской сущности «Четверть»;
- при удалении или изменении первичного ключа «код специальности» в родительской таблице «Специальность» автоматически удаляется или изменяется внешний ключ дочерней таблицы «Диплом»;
- при удалении или изменении первичного ключа «код родственника» в родительской таблице «Родственник» автоматически удаляются или изменяются внешние ключи в дочерней таблице «Семья»;
- при удалении или изменении первичного ключа «номер приказа» в родительской таблице «Приказ» автоматически удаляются или изменяются внешние ключи в дочерней таблице «Уч-П»;
- при удалении или изменении первичного ключа «код должности» в родительской таблице «Должность» автоматически удаляются или изменяются внешние ключи в дочерней таблице «Карьера»;
- при удалении или изменении первичного ключа «код инструмента» в родительской таблице «Инструмент» автоматически удаляются или изменяются внешние ключи в дочерних таблицах «Специализация» и «Учебный план»;
- при удалении или изменении первичного ключа «код льготы» в родительской таблице «Льгота» автоматически удаляются или изменяются внешние ключи в дочерней таблице «Условия обучения»;
5.3 SQL-код для создания реляционной модели
1) CREATE TABLE Сотрудник
(
код_сотрудника INT NOT NULL,
ФИО CHAR(25) NOT NULL,
пол CHAR(1) NOT NULL,
адрес CHAR(15) NOT NULL,
стаж INT NOT NULL,
дата_рождения DATE NOT NULL,
код_паспорта CHAR(15) NOT NULL,
дата_выдачи DATE NULL,
кем_выдан CHAR(10) NULL,
PRIMARY KEY (код_сотрудника, код_паспорта),
CHECK (пол IN ('М', 'Ж')),
CHECK (дата_рождения > CURRENT_DATE () - 100 AND дата_рождения < CURRENT_DATE () - 16)
);
2) CREATE TABLE Телефон
(
номер_телефона CHAR(10) NOT NULL,
тип_телефона CHAR(10) NULL,
примечания CHAR(15) NULL,
PRIMARY KEY (номер_телефона)
);
3) CREATE TABLE Должность
(
код_должности INT NOT NULL,
название_должности CHAR(10) NOT NULL,
PRIMARY KEY (код_должности)
);
4) CREATE TABLE Специальность
(
код_специальности INT NOT NULL,
название_специальности CHAR(10) NOT NULL,
PRIMARY KEY (код_специальности)
);
5) CREATE TABLE контакт
(
код_сотрудника INT,
номер_телефона CHAR(10),
PRIMARY KEY (код_сотрудника, номер_телефона),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (номер_телефона) REFERENCES Телефон ON
DELETE CASCADE ON UPDATE CASCADE
);
6) CREATE TABLE Диплом
(
код_диплома CHAR(15) NOT NULL,
код_сотрудника INT,
код_специальности INT,
название_учебного_заведения CHAR(25) NOT NULL,
дата_окончания_учебного_заведения DATE NOT NULL,
PRIMARY KEY (код_диплома, код_сотрудника),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_специальности) REFERENCES Специальность
ON DELETE CSCADE ON UPDATE CASCADE);
7) CREATE TABLE Карьера
(
код_сотрудника INT,
код_должности INT,
номер_приказа INT NOT NULL,
дата_поступления DATE NOT NULL,
оклад INT NOT NULL,
дата_увольнения DATE NULL,
PRIMARY KEY (код_сотрудника, код_должности),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_должности) REFERENCES Должность ON
DELETE CASCADE ON UPDATE CASCADE
);
8) CREATE TABLE Учащийся
(
код_учащегося INT NOT NULL,
ФИО CHAR (25) NOT NULL,
дата_рождения DATE NOT NULL,
пол CHAR(1) NOT NULL,
год_обучения INT NOT NULL,
адрес CHAR(25) NOT NULL,
код_свидетельства_о_рождении CHAR (15) NOT NULL,
дата_выдачи DATE NULL,
кем_выдано CHAR (25) NULL,
номер_учебного_плана INT NOT NULL,
PRIMARY KEY (код_учащегося, код_свидетельства),
FOREIGN KEY (номер_учебного_плана) REFERENCES Учебный план ON DELETE CASCADE ON UPDATE CASADE,
CHECK (пол IN ('М', 'Ж')),
CHECK (год_обучения >=1 AND год_обучения <=7),
CHECK (дата_рождения > CURRENT_DATE () - 100 AND дата_рождения < CURRENT_DATE () - 5)
);
9) CREATE TABLE Родственник
(
код_родственника INT NOT NULL,
ФИО CHAR(25) NOT NULL,
место_работы CHAR (25) NULL,
PRIMARY KEY (код_родственника)
);
10) CREATE TABLE Приказ
(
номер_приказа INT NOT NULL,
дата_подписания DATE NOT NULL,
код_сотрудника INT,
PRIMARY KEY (номер_приказа),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON DELETE CASCADE ON UPDATE CASCADE
);
11) CREATE TABLE Инструмент
(
код_инструмента INT NOT NULL,
название_инструмента CHAR(15) NOT NULL,
PRIMARY KEY (код_инструмента)
);
12) CREATE TABLE Льгота
(
код_льготы INT NOT NULL,
название_льготы CHAR (25) NOT NULL,
PRIMARY KEY (код_льготы)
);
13) CREATE TABLE Контакты
(
код_учащегося INT,
номер_телефона CHAR (10),
PRIMARY KEY (код_учащегося, номер_телефона),
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (номер_телефона) REFERENCES Телефон ON
DELETE CASCADE ON UPDATE CASCADE
);
14) CREATE TABLE Уч-П
(
код_учащегося INT,
номер_приказа INT,
дата_поступления DATE NOT NULL,
PRIMARY KEY (код_учащегося, номер_приказа),
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (номер_приказа) REFERENCES Приказ ON
DELETE CASCADE ON UPDATE CASCADE
);
15) CREATE TABLE Специализация
(код_учащегося INT,
номер_приказа INT,
код _инструмента INT,
PRIMARY KEY (код_учащегося, номер_приказа),
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (номер_приказа) REFERENCES Приказ ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_инструмента) REFERENCES Интрумент ON
DELETE CASCADE ON UPDATE CASCADE);
16) CREATE TABLE Условия_обучения
(
код_учащегося INT,
код_льготы INT,
плата_за_обучение NUMERIC NOT NULL,
дата_назначения_льготы DATE NULL,
дата_снятия_льготы DATE NULL,
PRIMARY KEY (код_учащегося, код_льготы),
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_льготы) REFERENCES Льгота ON
DELETE CASCADE ON UPDATE CASCADE
);
17) CREATE TABLE Семья
(
код_учащегося INT,
код_родственника INT,
PRIMARY KEY (код_учащегося, код_родственника),
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_родственника) REFERENCES Родственник ON
DELETE CASCADE ON UPDATE CASCADE
);
18) CREATE TABLE Предмет
(
код_предмета INT NOT NULL,
название_предмета CHAR(25) NOT NULL,
код_сотрудника INT,
PRIMARY KEY (код_предмета),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON DELETE CASCADE ON UPDATE CASCADE
);
19) CREATE TABLE Экзамен
(
год INT NOT NULL,
номер_экзамена INT NOT NULL,
код_сотрудника INT,
код_предмета INT,
код_учащегося INT,
дата DATE NOT NULL,
время_начала TIME NOT NULL,
время_окончания TIME NOT NULL,
кабинет INT NOT NULL,
тип_экзамена CHAR(15) NOT NULL,
оценка INT,
PRIMARY KEY (год, номер_экзамена),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_предмета) REFERENCES Предмет ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON
DELETE CASCADE ON UPDATE CASCADE,
CHECK (оценка>=2 AND оценка<=5),
CHECK (время_начала < время_окончания)
);
20) CREATE TABLE Учебный_план
(
номер_учебного_плана INT NOT NULL,
дата_утверждения_учебного_плана DATE NULL,
особенности MEMO NOT NULL,
код_сотрудника INT,
PRIMARY KEY (номер_учебного_плана),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON
DELETE CASCADE ON UPDATE CASCADE,
);
21) CREATE TABLE Четверть
(
год INT,
номер_четверти INT,
номер_учебного_плана INT,
PRIMARY KEY (год, номер_четверти),
FOREIGN KEY (номер_учебного_плана) REFERENCES
Учебный_план ON DELETE CASCADE ON UPDATE CASCADE
);
22) CREATE TABLE Ч-П
(
год INT,
номер_четверти INT,
код_предмета INT,
количество_часов NUMERIC NOT NULL,
PRIMARY KEY (год, номер_четверти, код_предмета),
FOREIGN KEY (год, номер_четверти) REFERENCES Четверть ON
DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (код_предмета) REFERENCES Предмет ON
DELETE CASCADE ON UPDATE CASCADE
);
23) CREATE TABLE Занятие
(
дата DATE NOT NULL,
время_начала TIME NOT NULL,
время_окончания TIME NOT NULL,
код_сотрудника INT,
код_предмета INT,
код_учащегося INT,
оценка INT NOT NULL,
PRIMARY KEY (дата, время_начала, время_окончания,
код_сотрудника),
FOREIGN KEY (код_сотрудника) REFERENCES Сотрудник ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_предмета) REFERENCES Предмет ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (код_учащегося) REFERENCES Учащийся ON
DELETE CASCADE ON UPDATE CASCADE,
CHECK (оценка >=2 AND оценка <=5),
CHECK (время_начала < время_окончания)
);
24) CREATE TABLE План_Четверть
(
номер_учебного_плана INT,
год INT,
номер_четверти INT,
PRIMARY KEY(номер_учебного_плана, год, номер_четверти),
FOREIGN KEY (номер_учебного_плана) REFERENCES Учебный_план
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (год) REFERENCES Четверть
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (номер_четверти) REFERENCES Четверть
ON DELETE CASCADE ON UPDATE CASCADE
);
25) CREATE TABLE Уволенные_сотрудники
(
код_сотрудника INT,
ФИО CHAR(25),
дата_ увольнения DATE,
PRIMARY KEY (код_сотрудника)
);
Дополнительные ограничения
1) Для сотрудника дата_поступления - дата_ рождения >=16
CREATE ASSERTION рожд_пост_сотр CHECK
(NOT EXISTS
(SELECT *
FROM Сотрудник, Карьера
WHERE Сотрудник.код_сотрудника= Карьера.код_сотрудника AND Карьера.дата_поступления - Сотрудник.дата_рождения <16));
2) Для сотрудника
дата_поступления>=дата_окончания_учебного_заведения
CREATE ASSERTION пост_оконч_сотр CHECK
( NOT EXISTS
(SELECT *
FROM Карьера, Диплом
WHERE Карьера.код_сотрудника= Диплом.код_сотрудника AND Карьера.дата_поступления<диплом.дата_окончания_учебного_заведения));
3) Для учащегося дата_поступления - дата_рождения >=5
CREATE ASSERTION рожд_пост_уч CHECK
( NOT EXISTS
(SELECT *
FROM Учащийся, Уч-П
WHERE Учащийся.код_учащегося= Уч-П.код_учащегося AND
Уч-П.дата_поступления - Учащийся.дата_рождения <5));
4) При увольнении сотрудника табельные номера следующих за ним в списке сотрудников уменьшаются на 1
CREATE TRIGGER SCODE
ON Сотрудник
FOR DELETE
AS
UPDATE Сотрудник ON
SET Сотрудник.код_сотрудника= Сотрудник.код_сотрудника - 1
FROM Сотрудник, DELETED
WHERE Сотрудник.код_сотрудника > DELETED.код_сотрудника;
5) При исключении учащегося коды следующих за ним в списке учащихся уменьшаются на 1
CREATE TRIGGER UCODE
ON Учащийся
FOR DELETE
AS
UPDATE Учащийся ON
SET Учащийся.код_учащегося= Учащийся.код_учащегося - 1
FROM Учащийся, DELETED
WHERE Учащийся.код_учащегося > DELETED.код_учащегося;
Триггера для Microsoft SQL Server
6) Данные об уволенных сотрудниках заносятся в таблицу «Уволенные_сотрудники»
CREATE TRIGGER Увольнение
ON Сотрудник
FOR DELETE
AS
INSERT INTO Уволенные_сотрудники
VALUES (DELETED.код_сотрудника, DELETED.ФИО, DELETED.дата_увольнения);
7) Из таблицы «Уволенные_сотрудники» удаляются данные о сотруднике, уволенном более одного месяца назад
CREATE TRIGGER Проверка
ON Уволенные_сотрудники
FOR UPDATE
AS
DELETE
FROM Уволенные_сотрудники
WHERE CURRENT_DATE() - дата_увольнения >=30;
5.4 Вывод
В данном разделе была спроектирована реляционная SQL-модель. Был выполнен перевод глобальной ER-модели в реляционную форму, специфицированы правила поддержания целостности на реляционном уровне, записан SQL-код для создания реляционной модели.
6. ПРОЕКТИРОВАНИЕ ПРЕДСТАВЛЕНИЙ ДЛЯ АВТОМАТИЗИРУЕМЫХ ФУНКЦИЙ
Данный раздел посвящен проектированию представлений для автоматизируемых функций. Здесь выполняется определение путей доступа к данным для автоматизируемых функций, записывается SQL-код локальных просмотров для автоматизируемых функций.
6.1 Определение способа и формы представления для автоматизируемых функций
Функция 1 «учет кадров»
Способы реализации представления выбираются в виде просмотра (View).
Форма реализации представления выбирается в виде единой виртуальной таблицы.
Функция 2 «прием учащихся»
Способы реализации представления выбираются в виде просмотра (View).
Форма реализации представления выбирается в виде иерархии таблиц.
Функция 3 «сдача экзаменов»
Способы реализации представления выбираются в виде хранимой процедуры (Stored Procedure).
Форма реализации представления выбирается в виде единой виртуальной таблицы.
Функция 4 «планирование учебного процесса»
Способы реализации представления выбираются в виде хранимой процедуры (Stored Procedure).
Форма реализации представления выбирается в виде иерархии таблиц.
Функция 5 «проведение занятий»
Способы реализации представления выбираются в виде просмотра (View).
Форма реализации представления выбирается в виде единой виртуальной таблицы.
6.2 Определение моделей соединения таблиц базы данных для реализации представлений
Модели соединения таблиц базы данных для реализации представлений для функции 1 «учет кадров» представлены на рис.6.1.1.
Рис. 6.1.1
Модели соединения таблиц базы данных для реализации представлений для функции 2 «прием учащихся» представлены на рис.6.1.2.
Рис.6.1.2
Модели соединения таблиц базы данных для реализации представлений для функции 3 «сдача экзаменов» представлены на рис.6.1.3.
Рис. 6.1.3
Модели соединения таблиц базы данных для реализации представлений для функции 4 «планирование учебного процесса» представлены на рис.6.1.4.
Рис.6.1.4
Модели соединения таблиц базы данных для реализации представлений для функции 5 «проведение занятий» представлены на рис.6.1.5.
Рис.6.1.5
6.3 SQL-код для реализации представлений
Функция 1 «учет кадров»
CREATE VIEW Учет_кадров AS
SELECT Сотрудник.*, Контакт.номер_телефона, Телефон.тип_телефона,
Телефон.примечания, Диплом.код_диплома, Диплом.код_специальности,
Специальность.название_специальности,
Диплом.название_учебного_заведения,
Диплом.дата_окончания_учебного_заведения,
Карьера.код_должности, Должность.название_должности,
Карьера.номер_приказа, Карьера.дата_поступления,
Карьера.оклад, Карьера.дата_увольнения
FROM ((Сотрудник LEFT OUTER JOIN (Контакт LEFT OUTER JOIN Телефон ON Контакт.номер_телефона=Телефон.номер_телефона) ON Сотрудник.код_сотрудника=Контакт.код_сотрудника) LEFT OUTER JOIN
(Диплом LEFT OUTER JOIN Специальность ON Диплом.код_специальности=Специальность.код_специальности) ON Сотрудник.код_сотрудника=Диплом.код_сотрудника) LEFT OUTER JOIN (Карьера LEFT OUTER JOIN Должность ON Карьера.код_должности=Должность.код_должности) ON Сотрудник.код_сотрудника=Карьера.код_сотрудника;
Функция 2 «прием учащихся»
CREATE VIEW V_Учащийся AS
SELECT Учащийся.код_учащегося, Учащийся.ФИО,
Учащийся.код_свидетельства_о_рождении
FROM Учащийся
CREATE VIEW V_Обучение AS
SELECT код_инструмента, название_инструмента, номер_приказа, дата_подписания, код_сотрудника, ФИО, дата_поступления
FROM (Уч_П LEFT OUTER JOIN (Приказ LEFT OUTER JOIN Сотрудник
ON Приказ.код_сотрудника=Сотрудник.код_сотрудника) ON Уч_П.номер_приказа=Приказ.номер_приказа) LEFT OUTER JOIN (Специализация LEFT OUTER JOIN Инструмент ON Специализация.код_инструмента=Инструмент.код_инструмента) ON Уч_П.код_учащегося=Специализация.код_учащегося
WHERE Уч_П.код_учащегося=@код_учащегося;
CREATE VIEW V_Родственник AS
SELECT код_родственника, ФИО, место_работы
FROM Семья LEFT OUTER JOIN Родственник ON Семья.код_родственника=Родственник.код_родственника
WHERE Семья.код_учащегося=@код_учащегося;
CREATE VIEW V_Контакты AS
SELECT номер_телефона, код_телефона, примечания
FROM Контакты LEFT OUTER JOIN Телефон ON Контакты.номер_телефона=Телефон.номер_телефона
WHERE Контакты.код_учашегося=@код_учащегося;
CREATE VIEW V_Льгота AS
SELECT код_льготы, название_льготы, плата_за_обучение, дата_назначения_льготы, дата_снятия_льготы
FROM Условия_обучения LEFT OUTER JOIN Льгота ON Условия_обучения.код_льготы=Льгота.код_льготы
WHERE Условия_обучения.код_учащегося=@код_учащегося;
Функция 3 «сдача экзаменов»
CREATE PROCEDURE Сдача_экзаменов
@год INT OUTPUT
@номер_экзамена INT OUTPUT
@дата DATE OUTPUT
@время_начала TIME OUTPUT
@время_окончания TIME OUTPUT
@кабинет INT OUTPUT
@тип_экзамена CHAR(15) OUTPUT
@код_сотрудника INT OUTPUT
@ФИО_сотрудника CHAR (25) OUTPUT
@код_учащегося INT OUTPUT
@ФИО_учащегося CHAR(25) OUTPUT
@код_предмета INT OUTPUT
@название_предмета CHAR(10) OUTPUT
@оценка INT OUTPUT
SELECT @дата=Экзамен.дата, @время_начала=Экзамен. время_начала,
@время_окончания=Экзамен. время_окончания,
@кабинет=Экзамен.кабинет, @тип_экзамена=Экзамен.тип_экзамена,
@код_сотрудника=Предмет.код_сотрудника,
@ФИО_сотрудника=Сотрудник.ФИО,
@код_учащегося=Экзаменуемый.код_учащегося,
@ФИО_учащегося=Учащийся.ФИО,
@код_предмета=Предмет.код_предмета,
@название_предмета=Предмет.название_предмета,
@оценка=Экзамен.оценка,
@год =Экзамен.год,
@номер_экзамена=Экзамен.номер_экзамена
FROM (Экзамен LEFT OUTER JOIN (Предмет LEFT OUTER JOIN Сотрудник ON Предмет.код_сотрудника=Сотрудник.код_сотрудника) ON Экзамен.код_предмета=Предмет.код_предмета) LEFT OUTER JOIN (Экзаменуемый LEFT OUTER JOIN Учащийся ON Экзаменуемый.код_учащегося=Учащийся.код_учащегося) ON Экзамен.год=Экзаменуемый.год AND Экзамен.номер_экзамена=Экзаменуемый.номер_экзамена
Функция 4 «планирование учебного процесса»
CREATE STORED PROCEDURE Учебный_процесс
@номер_учебного_плана INT INPUT
@дата_утверждения_учебного_плана DATE OUTPUT
@особенности MEMO OUTPUT
@код_сотрудника INT OUTPUT
@ФИО_сотрудника CHAR (25) OUTPUT
SELECT @дата_утверждения_учебного_плана=Учебный_план.дата_утверждения_учеб-ного_плана, @особенности=Учебный_план.особенности,
@код_сорудника=Учебный_план.код_сотрудника,
@ФИО_сотрудника=Сотрудник.ФИО
FROM Учащийся LEFT OUTER JOIN Сотрудник ON Учебный_план.код_сотрудника=Сотрудник.код_сотрудника;
CREATE STORED PROCEDURE V_Ч_Пр
@номер_учебного_плана INT INPUT
@год INT OUTPUT
@номер_четверти INT OUTPUT
@код_предмета INT OUTPUT
@название_предмета CHAR (15) OUTPUT
@количество_часов NUMERIC OUTPUT
@код_сотрудника INT OUTPUT
@ФИО CHAR (25) OUTPUT
SELECT @год=План_Четверть.год, @номер_четверти=План_Четверть.номер_четверти, @код_предмета=Ч_П.код_предмета, @название_предмета=Предмет.название_предмета, @количество_часов=Ч_П.количество_часов, @код_сотрудника=Предмет.код_сотрудника, @ФИО=Сотрудник.ФИО
FROM План_Четверть LEFT OUTER JOIN (Четверть LEFT OUTER JOIN (Ч_П LEFT OUTER JOIN (Предмет LEFT OUTER JOIN Сотрудник ON Предмет.код_сотрудника=Сотрудник.код_сотрудника) ON Ч_П.код_предмета=Предмет.код_предмета)
ON Четверть.год=Ч_П.год AND Четверть.номер_четверти=Ч_П.номер_четверти) ON План_Четверть.год=Четверть.год AND План_Четверть.номер_четверти=Четверть.номер_четверти
WHERE План_Четверть.номер_учебного_плана=@номер_учебного_плана;
CREATE STORED PROCEDURE V_план_учащийся
@номер_учебного_плана INT INPUT
@код_учащегося INT OUTPUT
@ФИО_учащегося CHAR (25) OUTPUT
SELECT @код_учащегося=Уч_Пл.код_учащегося,
@ФИО_учащегося=Учащийся.ФИО
FROM Уч_Пл LEFT OUTER JOIN Учащийся ON Уч_Пл.код_учащегося=Учащийся.код_учащегося
WHERE Уч_Пл.номер_учебного_плана=@номер_учебного_плана;
Функция 5 «проведение занятий»
CREATE VIEW V_Занятие AS
SELECT Занятие.дата, Занятие.время_начала, Занятие.время_окончания, Занятие.кабинет, Занятие.код_предмета, Предмет.название_предмета, Занятие.код_сотрудника, Сотрудник.ФИО, Занятие.код_учащегося, Учащийся.ФИО, Занятие.оценка
FROM ((Занятие LEFT OUTER JOIN Предмет ON Занятие.код_предмета=Предмет.Код_предмета) LEFT OUTER JOIN Сотрудник ON Занятие.код_сотрудника=Сотрудник.код_сотрудника) LEFT OUTER JOIN Учащийся ON Занятие.код_учащегося=Учащийся.код_учащегося;
6.4 Вывод
В данном разделе были спроектированы представления для автоматизируемых функций. Здесь было выполнено определение способов и форм представления, записан SQL-код для реализации представлений для автоматизируемых функций
7. ПРОЕКТИРОВАНИЕ ДОСТУПА К БАЗЕ ДАННЫХ ИЗ ЛОКАЛЬНЫХ ФУНКЦИЙ
Функция 1 «Учет кадров»
Пусть на сервере имеется представление «Учет_кадров» (созданное на предыдущем этапе). Получить информацию о сотрудниках музыкальной школы, используя технологию Pass-Through SQL из среды Visual FoxPro. Предполагается, что в клиентской базе данных Visual FoxPro имеется именованное соединение Education, настроенное для доступа к базе данных сервера.
h = SQLConnect ('Education')
x = ' SELECT * FROM Учет_кадров'
ret = SQLExec (h,x)
BROWSE
= SQLDisconnect (h)
Функция 2 «прием учащихся»
Пусть на сервере имеются представления V_Учащийся, V_Обучение, V_Родственник, V_Телефон и V_Льгота (созданные на предыдущем этапе). Получить информацию об учащихся, используя технологию ADO из серверных сценариев JScript. Предполагается, что для соединения с сервером используется источник данных ODBC Education, идентификатор пользователя User127, пароль SQL92.
<% @ LANGUAGE = 'JScript' %>
<%
var kod_st = Request ('код_учащегося') (1);
var con, rs, x
con = Server.CreateObject ("ADODB.Connection");
con.Open (' DSN = Education' , 'user_ID = User127', 'PSW = SQL92')
x = ' SELECT ФИО, год_обучения FROM V_Учащийся
WHERE код_учащегося = ' + kod_st
rs = Con.Execute (x)
%>
<HTML>
<BODY>
<h1> Результаты запроса </h1>
<table>
<% while (!rs.EOF)
{%>
<%rsMoveNext ()%>
<% } %}
<tr>
<td> <% = rs.Fields('ФИО') %> </td>
<td> <% = rs.Fields('год_обучения') %> </td>
<td> <A href = "V_Обучение" ? код_учащегося = <%Response.Write(kod_st) %> > Обучение </A> </td>
<td> <A href = "V_Родственник" ? код_учащегося = <% Response.Write(kod_st) %> > Родственник </A> </td>
<td> <A href = "V_Телефон" ? код_учащегося = <% Response.Write(kod_st) %>> Телефон </A> </td>
<td> <A href = "V_Льгота" ? код_учащегося = <% Response.Write(kod_st) %>> Льгота </A></td>
</tr>
<rs.Close (); con.Close ();%>
</table>
</BODY>
</HTML>
Функция 3 «сдача экзаменов»
Пусть на сервере имеется представление «Сдача_экзаменов». Получить информацию об экзаменах в музыкальной школе, используя технологию ADO из среды Visual FoxPro. Предполагается, что для соединения с сервером используется источник данных ODBC Education, идентификатор пользователя User127, пароль SQL92.
con = CREATEOBJECT ("ADODB.Connection")
con.Open (' DSN = Education' , 'user_ID = User127', 'PSW = SQL92')
rs = con.Execute ('SELECT * FROM Сдача_экзаменов')
DO WHILE ! rs.EOF
? rs.Fields ('год'), rs.Fields ('номер_экзамена'), rs.Fields ('дата'),;
rs. Fields ('время_начала'), rs. Fields ('время_окончания'),;
rs. Fields ('кабинет'), rs.Fields ('тип_экзамена'), ;
rs.Fields ('код_сотрудника'), rs.Fields ('ФИО_сотрудника'),;
rs.Fields ('код_учащегося'), rs.Fields ('ФИО_учащегося'),;
rs.Fields ('код_предмета'), rs.Fields ('название_предмета'),;
rs.Fields ('оценка')
rs.MOVENEXT()
ENDDO
rs.Close (); con.Close ();
7.4 Вывод
В данном разделе был спроектирован доступ к базе данных из локальных функций. Для этого были использованы следующие технологии: Pass-Through SQL из среды Visual FoxPro, ADO из серверных сценариев JScript и ADO из среды Visual FoxPro.
ЗАКЛЮЧЕНИЕ
В результате выполнения курсового проектирования была разработана структура реляционной базы данных для гипотетической информационной системы «музыкальная школа». В процессе работы были выработаны умения и навыки проектирования структуры базы данных, предназначенной для функционирования автоматизированной информационной системы.
В разделе 1 в результате анализа предположительного функционирования гипотетической автоматизированной системы «музыкальная школа»были выбраны пять автоматизируемых функций, охватывающих управление и организацию кадров, учеников и обучения, информационное обеспечение которых соответствует трём объектам предметной области и включает 79 атрибутов, охватывающих сведения о сотрудниках, учащихся, планировании, организации и проведении учебного процесса.
В разделе 2 в результате анализа информационного обеспечения функций были выявлены и сформулированы ограничения и правила поддержания целостности данных, которые должны быть учтены при дальнейшем проектировании. Общее число ограничений на уровне атрибутов составило 79 (в том числе динамических 1), на уровне кортежей -- 83 (динамические ограничения не выявлены), на уровне множеств кортежей -- 25 (динамические ограничения не были выявлены) и на уровне базы данных ограничения не были выявлены. Операционные правила были выявлены и сформулированы для уровня атрибутов -- 2 и для уровня множеств кортежей - 2.
В разделе 3 в результате проектирования локальных ER-моделей, соответствующих отдельным автоматизируемым функциям, были получены нормализованные локальных ER-модели, включающие от 4 до 6 сущностей в третьей нормальной форме. Разработанные спецификации ограничений и правил поддержания целостности включают все ограничения и правила, полученные на предыдущем этапе и трансформированные для локальных ER-моделей; анализ данных на этом этапе не потребовал дополнительного введения ограничений и правил.
В разделе 4 была получена глобальная модель данных, было приведено ее
графическое представление, дополнительных ограничений и правил выявлено не было.
В разделе 5 была спроектирована реляционная SQL-модель. Был выполнен перевод глобальной ER-модели в реляционную форму, специфицированы правила поддержания целостности на реляционном уровне, записан SQL-код для создания реляционной модели.
В разделе 6 были спроектированы представления для автоматизируемых функций. Здесь было выполнено определение способов и форм представления, записан SQL-код для реализации представлений для автоматизируемых функций
В разделе 7 был спроектирован доступ к базе данных из локальных функций. Для этого были использованы следующие технологии: Pass-Through SQL из среды Visual FoxPro, ADO из серверных сценариев JScript и ADO из среды Visual FoxPro.
СПИСОК ЛИТЕРАТУРЫ
1. Дейт К.Дж. Введение в системы баз данных: Пер. с англ. -- 6-е изд. -- Киев: Диалектика, 1998. -- 784 с.
2. Саймон А.Р. Стратегические технологии баз данных: менеджмент на 2000 год: Пер. с англ. -- М.: Финансы и статистика, 1999. -- 479 с.
3. Фаулер М., Скотт К. UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. -- М.: Мир, 1999. -- 191 с.
4. Маклаков С.В. BPwin и Erwin. CASE-средства разработки информационных систем. -- М.: ДИАЛОГ-МИФИ, 1999. -- 256 с.
Размещено на Allbest.ru
...Подобные документы
Основные компоненты, используемые при создании информационно-справочной системы "Музыкальная школа". Разработка базы данных в MS Access и информационной системы в C++Builder. Соединение базы данных, опции создания отчёта и добавление записей в таблицу.
курсовая работа [953,9 K], добавлен 15.01.2013Выявление сущностей и связей, атрибутов сущностей и назначение первичных ключей при разработке базы данных. Реляционная модель данных. Описание стадий жизненного цикла информационной системы: анализ, проектирование, реализация, внедрение, сопровождение.
курсовая работа [152,2 K], добавлен 11.05.2014Описание внешних иерархических моделей базы данных. Проектирование нормализованных локальных ER-моделей. Выявление и устранение эквивалентных сущностей и категорий, дублирования атрибутов и связей. Создание внутренней реляционной модели данного проекта.
курсовая работа [87,9 K], добавлен 20.01.2015Выбор и описание автоматизируемых функций: учет кадров, инцидентов, парка компьютерной техники, заказа расходных материалов, комплектующих и ремонта техники. Первичное описание информационного обеспечения. SQL-код для создания таблиц базы данных.
курсовая работа [424,3 K], добавлен 10.04.2011Разработка программного обеспечения для автоматизации деятельности работников книжного магазина. Проектирование информационной системы с использованием базы данных Access. Методы хранения данных. Средства защиты данных от несанкционированного доступа.
контрольная работа [664,9 K], добавлен 13.06.2014Детализация функций системы и требования к информационной системе. Анализ категорий пользователей. Этапы внедрения автоматизированной информационной системы на предприятии. Описание таблиц базы данных. Защита данных от несанкционированного доступа.
дипломная работа [1,0 M], добавлен 22.07.2015Требования, предъявляемые к базе данных "Публикации в СМИ". Выбор инструментальных средств для разработки. Проектирование базы данных: выявление необходимого набора сущностей, обоснование требуемого набора атрибутов, определение связей между объектами.
курсовая работа [1,2 M], добавлен 18.04.2014Общие требования к информационной системе, основные этапы ее разработки и оценка практической эффективности. Проектирование базы данных и технология доступа к ним. Разработка клиентского программного обеспечения, средства, защита и сохранность данных.
курсовая работа [720,7 K], добавлен 09.04.2013Создание базы данных "Автовокзал" как части информационной системы. Требования к базе данных и этапы ее разработки. Анализ информационных потоков, выбор модели. Входные и выходные данные. Программирование базы данных на языке Borland Delphi 7.0.
курсовая работа [105,8 K], добавлен 16.05.2011Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014Анализ основных угроз и методов обеспечения работы систем информационной безопасности. Характеристика разновидностей защиты баз данных. Особенности UML-моделирования: оценка основных функций и процесс работы, пути реализации информационной системы.
курсовая работа [158,7 K], добавлен 15.06.2013Выбор языка и среды программирования, технологий доступа и взаимодействия с источниками данных. Требования к разработке информационной системы. Проектирование базы данных информационной системы учета и взаимодействующего с ней приложения .NET Framework.
курсовая работа [1,3 M], добавлен 17.05.2013Характеристика основных этапов создания программной системы. Сведения, хранимые в базе данных информационной системы музея. Описание данных, их типов и ограничений. Проектирование базы данных методом нормальных форм. Технические и программные средства.
курсовая работа [1,8 M], добавлен 23.01.2014Анализ предметной области, этапы проектирования автоматизированных информационных систем. Инструментальные системы разработки программного обеспечения. Роль CASE-средств в проектировании информационной модели. Логическая модель проектируемой базы данных.
курсовая работа [410,6 K], добавлен 21.03.2011Разработка информационной системы ресторана, определение ее границ для реализации базы данных. Перечень запросов, отчетов и операций по вводу информации в информационной системе "Ресторан". Проектирование базы данных, выбор средств ее реализации.
курсовая работа [7,6 M], добавлен 27.04.2011Информационные технологии: современное состояние, роль в бизнесе и тенденции развития. Анализ информационной культуры предприятия. Разработка базы данных "Base" и программного обеспечения, обслуживающего базу. Описание интерфейса информационной системы.
дипломная работа [1,8 M], добавлен 02.11.2015Варианты использования информационной системы: заказ билета, просмотр каталога фильмов и списка кинотеатров. Проектирование реляционной модели базы данных, ее мапирование в метамодель, логическая и физическая реализация. Результаты работы программы.
курсовая работа [673,9 K], добавлен 20.11.2011Анализ предметной области, главных функций организации. Разработка макета внутренней структуры программного обеспечения информационной системы в виде диаграммы классов. Составление схемы базы данных. Разработка интерфейса и руководства пользователя.
курсовая работа [866,3 K], добавлен 02.06.2015Исследование современных технологий и средств разработки. Выявление и оценка информационных потоков и структуры информации. Выбор необходимой информации для информационной системы. Проектирование и анализ системы навигации. Проектирование базы данных.
дипломная работа [2,8 M], добавлен 21.01.2012Анализ организационной структуры и информационной системы академии. Выявление недостатков и выбор метода устранения недостатков. Проектирование и принципы разработки базы данных. Тестирование, апробация, внедрение информационной системы, эффективность.
курсовая работа [2,1 M], добавлен 02.12.2014