Физическое проектирование.
Разработка информационной системы "Библиотека" с использованием клиент-серверной технологии
![Реферат: Физическое проектирование. Разработка информационной системы "Библиотека" с использованием клиент-серверной технологии](https://bakalavr-info.ru/work/8871961/cover.png)
Imya_chitatelya d_name /* d_name = varchar (45) not null */,. Alter table chitatel add primary key (nomer_chitatelya); Otchestvo d_name /* d_name = varchar (45) not null */,. Ulica d_name /* d_name = varchar (45) not null */,. Create or alter trigger chitatel_bi0 for chitatel. Задание первичного ключа. Таблица 2. Список доменов. NEW. nomer_chitatelya=gen_id (gen_chitatel, 1); Таблица 1. ER… Читать ещё >
Физическое проектирование. Разработка информационной системы "Библиотека" с использованием клиент-серверной технологии (реферат, курсовая, диплом, контрольная)
После даталогического проектирования запускаем приложение администрирования баз данных Firebird IBExpert и, используя функции заложенные в этом программном средстве, создаем и регистрируем в системе новую базу данных Firebird «Библиотека». Создание базы данных инсталлирует инфраструктуру, необходимую для начала создания объектов. Первичным объектом для постоянного хранения данных в базе данных является таблица.
Приступая к созданию таблиц, предполагается, что уже выполнен анализ данных и подготовлена модель, а также имеется совершенно четкое представление о структурах главных таблиц и их взаимоотношениях. Исходя из данных, полученных при выполнении инфологического и даталогического проектирования, спроектировал таблицы и поля базы данных. Определяем ключевые поля и поля Not null (см. Таблица 1).
В данной базе данных для определения типов данных столбцов таблиц используются домены (см. Таблица 2). Домены в Firebird схожи с концепцией «типы данных, определенные пользователем». Хотя и невозможно создать новый тип данных, но можно задать набор атрибутов с одним из существующих типов данных и присвоить ему идентификатор домена. После этого можно использовать домен как параметр типа данных для определения столбцов любой таблицы. Преимущества инкапсуляции определения данных очевидны, так как в Firebird отсутствует логический, денежный и некоторые другие типы данных, но, используя домены, можно создать замену этим типам данных.
Имя таблицы. | Имя поля. | Тип. | Длина. | Десятичная часть. | Имя домена. |
bibliotekor. | Nomer_bibliotekorya. | SMALLINT. | D_INDEXTYPE. | ||
Nomer_otdela. | SMALLINT. | D_INDEXTYPE. | |||
Fio_bibliotekorya. | VARCHAR. | D_NAME. | |||
chitatel. | Nomer_chitatelya. | SMALLINT. | D_INDEXTYPE. | ||
Familiya_4itatelya. | VARCHAR. | D_NAME. | |||
Imya_chitatelya. | VARCHAR. | D_NAME. | |||
adres. | VARCHAR. | D_ADRES. | |||
telefon. | VARCHAR. | D_TEL. | |||
Knigi. | Nomer_knigi. | SMALLINT. | D_INDEXTYPE. | ||
Nomer_otdela. | SMALLINT. | D_INDEXTYPE. | |||
nazvanie_knigi. | VARCHAR. | D_NAME. | |||
kol_vo_stranic. | SMALLINT. | D_INDEXTYPE. | |||
avtor. | VARCHAR. | D_NAME. | |||
id. | SMALLINT. | D_INDEXTYPE. | |||
New_table. | Nomer_knigi. | SMALLINT. | D_INDEXTYPE. | ||
Nomer_otdela. | SMALLINT. | D_INDEXTYPE. | |||
nazvanie_knigi. | VARCHAR. | D_NAME. | |||
kol_vo_stranic. | SMALLINT. | D_INDEXTYPE. | |||
avtor. | VARCHAR. | D_NAME. | |||
izmen. | VARCHAR. | D_NAME. | |||
data_tr. | DATE. | D_DATETYPE. | |||
otdel_knig. | nazvanie_otdela. | VARCHAR. | D_NAME. | ||
Nomer_otdela. | SMALLINT. | D_INDEXTYPE. | |||
kol_vo_knig. | SMALLINT. | D_INDEXTYPE. | |||
telefon. | VARCHAR. | D_TEL. | |||
nomer_bibliotekorya. | SMALLINT. | D_INDEXTYPE. | |||
Vida4a_knig. | Nomer_zapisi. | SMALLINT. | D_INDEXTYPE. | ||
Nomer_knigi. | SMALLINT. | D_INDEXTYPE. | |||
Nomer_bibliotekorya. | SMALLINT. | D_INDEXTYPE. | |||
Nomer_4itatelya. | SMALLINT. | D_INDEXTYPE. | |||
data_vyda4i_knigi. | DATE. | D_DATETYPE. | |||
data_vozvrata_knigi. | DATE. | D_DATETYPE. |
Таблица 1. ER — модель БД.
Имя домена. | Тип. | Длинна. | Ограничения. |
D_INDEXTYPE. | SMALLINT. | VALUE>0. | |
D_NAME. | VARCHAR. | ||
D_ADRES. | VARCHAR. | ||
D_TEL. | VARCHAR. | ||
D_DATETYPE. | DATE. | VALUE<='TODAY'. |
Таблица 2. Список доменов.
Теперь, когда проработаны все теоретические аспекты создания базы данных, можно приступать к программированию доменов и таблиц. Для этого, запустив IBExpert, загружаем SQL редактор и выбираем меню Tools->SQL Editor.
В появившемся окне пишем скрипт для создания домена D_NAME:
CREATE DOMAIN D_NAME AS.
VARCHAR (45) CHARACTER SET WIN1251.
NOT NULL.
COLLATE WIN1251.
Подобным образом создал домены D_INDEXTYPE, D_ADRES, D_DATETYPE, D_TEL. (см. Приложение 1).
Создав домены, приступаем к созданию таблиц. Всего в БД будет создано шесть таблиц. Таблицы имеют связи, реализуемые с помощью первичных и вторичных ключевых полей. Кроме связей эти поля также влияют на целостность данных.
Средствами IBExpert создаем таблицу chitatel и указываем ключевые поля, в этой таблице будут храниться данные о типах мебели:
CREATE TABLE CHITATEL (
FAMILIYA_CHITATELYA D_NAME /* D_NAME = VARCHAR (45) NOT NULL */,
IMYA_CHITATELYA D_NAME /* D_NAME = VARCHAR (45) NOT NULL */,
OTCHESTVO D_NAME /* D_NAME = VARCHAR (45) NOT NULL */,
ULICA D_NAME /* D_NAME = VARCHAR (45) NOT NULL */,
NOMER_DOMA D_INDEXTYPE /* D_INDEXTYPE = INTEGER NOT NULL */,
TELEFON D_TEL /* D_TEL = VARCHAR (15) */,
NOMER_CHITATELYA D_INDEXTYPE NOT NULL /* D_INDEXTYPE = INTEGER NOT NULL */);
— Задание первичного ключа
ALTER TABLE CHITATEL ADD PRIMARY KEY (NOMER_CHITATELYA);
Используя комбинацию генератора с триггером, реализуем автоинкрементное поле для таблицы chitatel
— Создание генератора
CREATE GENERATOR GEN_ID_ CHITATEL;
— Создание триггера.
CREATE OR ALTER TRIGGER CHITATEL_BI0 FOR CHITATEL
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
begin
IF (NEW.nomer_chitatelya is null) then
NEW.nomer_chitatelya=gen_id (gen_chitatel, 1);
end
Подобным образом создаем остальные таблицы. Задаем для этих таблиц ключевые поля, вторичные ключи, разрабатываем генераторы и триггеры (см. Приложение 1).