Требования к логической модели

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

Логическая модель должна быть описана средствами языка SQL:

Создание базы данных

CREATE DATABASE <имя_базы_данных>

Создание таблицы

CREATE TABLE <имя_таблицы>

 (<имя_столбца> <тип_столбца> [NOT NULL][UNIQUE | PRIMARY KEY]

[REFERENCES <имя_таблицы> [<имя_столбца>]]  [, n]...)

Создание индекса

CREATE [UNIQUE] INDEX <имя_индекса> ON <имя_таблицы> (<имя_столбца>,...)

 

Пример 1.

Создание базы данных «Данные замеров»

CREATE DATABASE D dan_zam

 

Создание таблицы «Изделие»

CREATE TABLE izdel

(i_kod INT NOT NULL PRIMARY KEY,

 i_name CHAR(20),

 i_kodzak INT NOT NULL,

 i_datzak SMALLDATETIME,

 i_krop  CHAR(40))

 

Создание таблицы «Характеристики»

CREATE TABLE charact

(с_kod INT NOT NULL PRIMARY KEY,

 с_name CHAR(30))

Создание таблицы «Замеры»

CREATE TABLE zamer

(i_kod INT NOT NULL REFERENCES izdel,

 z_datzam SMALLDATETIME  NOT NULL,

 c_kod  INT NOT NULL REFERENCES charact,

 z_ed CHAR(4),

 z_znach REAL,

 z_otm CHAR(10),

 PRIMARY KEY (i_kod, z_datzam))

 

Создание индекса к таблице «Изделие»

CREATE INDEX inizdel ON izdel (i_datzak)

Требования к физической модели*

Выполнить описание базы данных в среде SQL Server. Разработать данные  контрольного примера для описанной базы данных.

Внести в таблицы базы данных данные контрольного примера, воспользовавшись оператором:

INSERT INTO <имя_таблицы> [ (<имя_столбца>,<имя_столбца>,...) ]

VALUES (<значение>,<значение>,..)

или средствами утилиты Enterprise Manager (пример 2).

Пример 2.

Ввод данных в таблицу «Изделие» (обратите внимание на формат даты)

INSERT INTO izdel VALUES (100, ‘Подшипник’, 521, ‘12/05/2006’, ‘Тестирование для цеха №1’)

 

Модель должна включать:

- описание системы кодирования для атрибутов, содержащих кодовые обозначения (например, атрибут Код изделия на рис. 12);

- 4-5 записей для каждого отношения;

- 2-3 представления для различных таблиц базы данных (пример 3);

- процедуры без параметров и с параметрами для изменения значений атрибутов одной из таблиц при выполнении некоторого условия (пример 4);

- триггер для одной из таблиц, контролирующий либо операцию изменения  записей в таблице, либо добавление записей в таблицу, либо удаление записей из таблицы (пример 5);

- описание запросов к таблицам, следующего характера (пример 6):

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

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

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

4. запрос с использованием агрегатных функций;

5. запрос на выборку записей с условием сортировки;

6. вложенный запрос на выборку записей с использованием предиката EXISTS.

– пользовательское приложение, реализующее экранный интерфейс с базой данных для ее просмотра и редактирования посредством ODBC (для разработки приложения могут быть использованы Delphi, Visual Basic, C++Builder, MS Access и др.).

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

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

 

Пример 3.

Создание представления, которое содержит информацию об изделиях с датой заказа ранее 12/05/2006

CREATE VIEW oldizdel AS SELECT i_kod, i_name, i_datzak FROM izdel    WHERE i_datzak <’12/05/2006’

 

Пример 4.

Создание процедуры, реализующей изменение в таблице «Замеры», реализующей увеличение значения характеристики в 100 раз

CREATE PROCEDURE new_edizm AS

UPDATE zamer

SET z_znach= z_znach*100

Запуск процедуры new_edizm

EXEC new_edizm

 

Создание процедуры с параметрами, увеличивающей в таблице «Замеры» значение характеристики в 100 раз при указании кода изделия, для которого необходимо выполнить данное увеличение

CREATE PROCEDURE new_edizm1 (@kod INT) AS

UPDATE zamer

SET z_znach= z_znach*100  WHERE i_kod=@kod

Запуск процедуры new_edizm1 для изделия с кодом 120

EXEC new_edizm1 @kod=120

 

Пример 5.

Создание триггера для обработки операции удаления зависимых записей из таблицы Изделия при удалении записей из таблицы Замеры.

CREATE TRIGGER udalen ON zamer

FOR DELETE

AS

IF @@ROWCOUNT=1

BEGIN

DECLARE @x INT

SELECT @x=d.i_kod FROM zamer a, deleted d WHERE a.i_kod=d.i_kod

IF EXISTS (SELECT * FROM izdel WHERE i_kod=@x)

DELETE FROM izdel WHERE i_kod=@x

END

 

Пример 6.

6.1. SELECT * FROM izdel WHERE i_kod BETWEEN 100 AND 200

   SELECT z_datzam, z_otm FROM zamer WHERE z_datzam<’10/12/2005’ AND  z_datzam>’08/10/2004’

6.2. SELECT * FROM izdel WHERE i_kod IN (100,200,300,400)

6.3. SELECT izdel.i_kod, izdel.i_datzak, zamer.z_datzam FROM izdel, zamer WHERE izdel.i_kod = zamer.i_kod

6.4. SELECT COUNT(*) AS ‘количество изделий’ FROM izdel

  SELECT MIN(z_znach) AS ‘минимальное значение характеристики’ FROM zamer

6.5. SELECT * FROM izdel ORDER BY i_datzak ASC

6.6. Вывести список изделий, для которых не проводились замеры

SELECT i_name, i_krop FROM izdel WHERE NOT EXISTS (SELECT i_kod FROM zamer WHERE izdel.i_kod=zamer.i_kod)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: