Автор работы: Пользователь скрыл имя, 23 Апреля 2013 в 11:45, контрольная работа
Создать базу данных «РАБОТА БАНКОВ С РАСЧЕТНЫМИ СЧЕТАМИ» (типы счетов, список счетов, перечень операций, тарифы).
1. Разработать с помощью Erwin логическую и физическую модели данных.
2. Путем прямого проектирования получить файл базы данных в формате Access.
3. Создать сценарий, с помощью которого можно сгенерировать базу данных в формате MS SQL Server.
1. Задание
2. Логическая структура базы данных.
3. Получение файла базы данных в формате Access путем прямого проектирования
4. Создание сценария, с помощью которого можно сгенерировать базу данных в формате MS SQL Server
Заключение
Список используемой литературы
Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Контрольная работа по курсу
"Базы данных"
Вариант 17
Витебск 2013
Содержание
Содержание |
|
1. Задание |
|
2. Логическая структура базы данных. |
|
3. Получение
файла базы данных в формате Ac |
|
4. Создание сценария, с помощью которого можно сгенерировать базу данных в формате MS SQL Server |
|
Заключение |
|
Список используемой литературы |
Вариант 17: Создать базу данных «РАБОТА БАНКОВ С РАСЧЕТНЫМИ СЧЕТАМИ» (типы счетов, список счетов, перечень операций, тарифы).
1. Разработать с помощью Erwin логическую и физическую модели данных.
2. Путем прямого проектирования получить файл базы данных в формате Access.
3. Создать сценарий,
с помощью которого можно
При разработке логической структуры данных необходимо выделить сущности. В нашем случае их будет четыре:
- типы счетов;
- список счетов;
- перечень операций;
- тарифы;
Исходя из назначения базы данных, в перечисленных ранее сущностях можно задать следующие поля:
- «КодСчета» - первичный ключ, целое, обязательный атрибут, содержит уникальный код, позволяющий однозначно идентифицировать запись;
- «ТипСчета» - текст.
- «Код» - первичный ключ, целое, обязательный атрибут, содержит уникальный код, позволяющий однозначно идентифицировать запись;
- «КодСчета» - внешний ключ (неидентифицирующая связь), целое, обязательный атрибут, связано с полем «КодСчета» сущности «Типы счетов»;
- «НаименованиеСчета» - текст;
- «НомерСчета» - целое;
- «КодОперации» - первичный ключ, целое, обязательный атрибут, содержит уникальный код, позволяющий однозначно идентифицировать запись;
- «КодСчета» - внешний ключ (неидентифицирующая связь), целое, обязательный атрибут, связано с полем «КодСчета» сущности «Типы счетов»;
- «ВидОперации» - текст;
- «НомерОперации» - целое;
- «КодТарифа» - первичный
ключ, целое, обязательный атрибут,
содержит уникальный код,
- «КодСчета» - внешний ключ (неидентифицирующая связь), целое, обязательный атрибут, связано с полем «КодСчета» сущности «Типы счетов»;
- «ВидТарифа» - текст;
- «НаименованиеТарифа» -текст;
- «НомерТарифа» - целое;
На основании вышеприведенных соображений в системе Erwin была создана новая модель данных с типом «Логическая/Физическая», в ней были созданы все вышеприведенные сущности (рисунок 2.1).
Рисунок 2.1 – сущности логической структуры базы данных
Далее были созданы необходимые идентифицирующие связи «один ко многим» между сущностями (рисунок 2.2).
Рисунок 2.2 – созданные связей между сущностями
Для созданных
идентифицирующих связей были установлены
правила ссылочной целостности
Были созданы
правила валидации для
Рисунок 2.3 – настройка правил валидации
В результате получена модель Erwin, которая является графическим представлением логической структуры разрабатываемой базы данных (рисунок 2.4).
Рисунок 2.4 – логическая структура базы данных
3. Получение файла базы данных в формате Access путем прямого проектирования.
Запускаем СУБД MS Access и создаем новую пустую базу данных NBase.mdb, после чего закрываем Access.
Переключаемся в Erwin в режим показа физической модели, убираем пробелы в названиях полей и корректируем типы и длины полей, ориентируясь на специфику типов данных СУБД Access (рисунок 3.1).
Рисунок 3.1 – физическая модель базы данных
В окне Columns физической модели данных создаем правила валидации для ключевых полей всех сущностей (рисунок 3.2).
Рисунок 3.2 – правила валидации в физической модели данных
В Erwin с помощью команды меню Tools->Forward Engineer/Schema Generation открываем окно Access Schema Generation, нажимаем кнопку Generate и вводим данные, изображенные на рисунке 3.3 в появившееся окно Access Connection.
Рисунок 3.3 – окно Access Connection
Далее нажимаем кнопку «Connect».
При помощи команды Database->Database Connection открываем окно Access Connection и разрываем соединение с базой данных Метео.mdb нажатием кнопки «Disconnect».
Открываем в СУБД MS Access файл базы данных Метео.mdb, нажимаем кнопку «Схема данных» и получаем схему, изображенную на рисунке 3.4.
Рисунок 3.4 – схема данных
4. Создание сценария, с помощью которого
можно сгенерировать базу данных в формате
MS SQL Server.
Для экспорта полученной логической структуры в СУБД MS SQL Server в системе Erwin были выполнены следующие действия:
1) При помощи команды Select target server была изменена целевая база данных с Access на SQL Server (рисунок 4.1).
Рисунок 4.1 – смена целевой базы данных
При этом физическая модель данных приобрела вид, изображенный на рисунке 4.2.
Рисунок 4.2 – физическая модель данных
В SQL Server Enterprise Manager создаем новую базу данных «meteo».
В Erwin выполняем команду меню Tools->Forward Engineer/Schema Generation и в появившемся окне «SQL Server Schema Generation» нажимаем кнопку «Generate», на экране появляется еще одно окно «SQL Server Connection», в котором указываем название базы данных и сервера баз данных (рисунок 4.3) и нажимаем кнопку «Connect».
Рисунок 4.3 – окно SQL Server Connection
Полученную в результате базу данных можно увидеть в SQL Server Enterprise Manager (рисунок 4.4).
Рисунок 4.4 – созданные таблицы базы данных
Полученный SQL-сценарий создания базы данных приведен ниже:
CREATE RULE Положительное
AS >=0
Line 2: Incorrect syntax near '>'.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
CREATE TABLE Переработка (
Затраты int NULL,
КодПереработки int NOT NULL,
КодПрихода int NOT NULL,
Количество int NULL
)
There is already an object named 'Переработка' in the database.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
ALTER TABLE Переработка
ADD PRIMARY KEY (КодПереработки ASC, КодПрихода ASC)
Table 'Переработка' already has a primary key defined on it.
Could not create constraint. See previous errors.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
exec sp_bindrule Положительное, 'Переработка.КодПереработки'
exec sp_bindrule Положительное, 'Переработка.КодПрихода'
The rule 'Положительное' does not exist.
The rule 'Положительное' does not exist.
Execution Failed!
CREATE TABLE Приход (
КодПрихода int NOT NULL,
Затраты int NULL,
Количество int NULL
)
There is already an object named 'Приход' in the database.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
ALTER TABLE Приход
ADD PRIMARY KEY (КодПрихода ASC)
Table 'Приход' already has a primary key defined on it.
Could not create constraint. See previous errors.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
exec sp_bindrule Положительное, 'Приход.КодПрихода'
The rule 'Положительное' does not exist.
Execution Failed!
CREATE TABLE Расход (
Количество int NULL,
КодРасхода int NOT NULL,
КодПереработки int NOT NULL,
Сумма int NULL,
КодПрихода int NOT NULL
)
There is already an object named 'Расход' in the database.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
ALTER TABLE Расход
ADD PRIMARY KEY (КодРасхода ASC, КодПереработки ASC,
КодПрихода ASC)
Table 'Расход' already has a primary key defined on it.
Could not create constraint. See previous errors.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
exec sp_bindrule Положительное, 'Расход.КодРасхода'
exec sp_bindrule Положительное, 'Расход.КодПереработки'
exec sp_bindrule Положительное, 'Расход.КодПрихода'
The rule 'Положительное' does not exist.
The rule 'Положительное' does not exist.
The rule 'Положительное' does not exist.
Execution Failed!
ALTER TABLE Переработка
ADD FOREIGN KEY (КодПрихода)
REFERENCES Приход (КодПрихода)
Execution Successful
ALTER TABLE Расход
ADD FOREIGN KEY (КодПереработки, КодПрихода)
REFERENCES Переработка (КодПереработки,
КодПрихода)
Execution Successful
create trigger tD_Переработка on Переработка for DELETE as
/* ERwin Builtin Thu Jan 05 03:10:32 2012 */
/* DELETE trigger on Переработка */
begin
declare @errno int,
@errmsg varchar(255)
/* ERwin Builtin Thu Jan 05 03:10:32 2012 */
/* Переработка R/12 Расход ON PARENT DELETE RESTRICT */
/* ERWIN_RELATION:PARENT_OWNER=""
CHILD_OWNER="", CHILD_TABLE="Расход"
P2C_VERB_PHRASE="R/12", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_12",
FK_COLUMNS="КодПереработки""
if exists (
select * from deleted,Расход
where
/* %JoinFKPK(Расход,deleted," = "," and") */
Расход.КодПереработки = deleted.КодПереработки and
Расход.КодПрихода = deleted.КодПрихода
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE Переработка because Расход exists.'
goto error
end
/* ERwin Builtin Thu Jan 05 03:10:32 2012 */
return
error:
raiserror @errno @errmsg
rollback transaction
end
There is already an object named 'tD_Переработка' in the database.
General SQL Server error: Check messages from the SQL Server.
Execution Failed!
create trigger tI_Переработка on Переработка for INSERT as
/* ERwin Builtin Thu Jan 05 03:10:34 2012 */
/* INSERT trigger on Переработка */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@errno int,
@errmsg varchar(255)
select @numrows = @@rowcount
/* ERwin Builtin Thu Jan 05 03:10:34 2012 */
/* Приход R/11 Переработка ON CHILD INSERT RESTRICT */
/* ERWIN_RELATION:PARENT_OWNER=""