3.2.5.3 SQL-команда создания
CREATE TABLE [dbo].[Subjects]([idtitle] [int] NOT NULL,
[title] [varchar](50) NULL,
CONSTRAINT [PK_Subjects] PRIMARY KEY CLUSTERED
(
[idtitle] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
3.2.5.4 Демонстрация создания таблицы
На рисунке 5 представлен скриншот создания таблицы "Тематики".
Рис.5. создание таблицы "Тематики"
3.2.6 Создание таблицы "Subscription"
3.2.6.1 Назначение таблицы
Хранит информацию о абонементе на книгу, номер библиотеки, номер читателя, номер книги, дату выдачи и сдачи и плату.
3.2.6.2 Связи с таблицами
Поле idbook является ключевым в данной таблице, так же таблица содержит внешние ключи id и idreader.
3.2.6.3 SQL-команда создания
CREATE TABLE [dbo].[Subscription]([id] [int] NULL,
[idbook] [int] NULL,
[idreader] [int] NOT NULL,
[date_issue] [date] NULL,
[date_return] [date] NULL,
[advance] [money] NULL,
CONSTRAINT [PK_Subscription] PRIMARY KEY CLUSTERED
(
[idreader] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
3.2.6.4 Демонстрация создания таблицы
На рисунке 6 представлен скриншот создания таблицы "Абонемент".
Рис.6. создание таблицы "Абонемент"
3.3 Создание проекций
Проекции широко применимы в области бизнеса, так как на основе проекций удобно делать отчёты. Продемонстрирую 2 возможные проекции. Однако следует помнить, что через проекцию нельзя изменять данные, так как может быть использована группировка и вычисляемые поля.
3.3.1 Проекция V1
3.3.1.1 Назначение проекции
Найти книги, количество которых больше 10 в наличии и вывести id библиотеки, автора книги и её название.
3.3.1.2 Текст проекции на языке sql-запросов
SELECT id, count, author, name
FROM dbo.Books
GROUP BY id, count, author, name
HAVING (MIN(count) > 10)
3.3.1.3 Демонстрация проекции
На рисунке 7 продемонстрирован текст проекции 1 и результат её работы.
Рис. 7. Проекция 1.
3.3.1.4 Описание логики
Описание логики проекции представлено на рис.8
Рис.8 Описание логики проекции.
3.3.2 Проекция V2
3.3.2.1 Назначение проекции
Выдать имена читателей, которые брали книгу данную книгу.
3.3.2.2 Текст проекции на языке sql-запросов
SELECT dbo.Reader.fio, dbo.Books.name
FROM dbo.Subscription INNER JOIN
dbo.Reader ON dbo.Subscription.idreader = dbo.Reader.idreader AND dbo.Subscription.idreader = dbo.Reader.idreader INNER JOIN
dbo.Books ON dbo.Subscription.idbook = dbo.Books.idbook
WHERE (dbo.Subscription.idbook = 2)
3.3.2.3 Демонстрация проекции
На рисунке 9 продемонстрирован текст проекции 2 и результат её работы.
Рис. 9. Проекция 2
3.3.2.4 Описание логики
Описание логики проекции представлено на рис.10
Рис.10 Описание логики проекции.
3.4 Создание хранимой процедуры с курсором
Хранимая процедура -- объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам. Курсор -- ссылка на контекстную область памяти. В некоторых реализациях языка программирования SQL -- получаемый при выполнении запроса результирующий набор и связанный с ним указатель текущей записи.
3.4.1 Назначение процедуры
Выдает дату выдачи и сдачи книги, плату, наименование и автора заданной книги.
3.4.2 Текст процедуры на языке SQL-запросов
USE [BD Library]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE Procedure2
@KODEBOOK int
AS
BEGIN
SET NOCOUNT ON;
SELECT dbo.Subscription.date_issue, dbo.Subscription.date_return, dbo.Subscription.advance
from dbo.Subscription
- Введение
- 1. Постановка задачи
- 1.1 Характеристика задачи
- 1.2 Входная информация
- 1.3 Выходная информация
- 1.4 Цель работы
- 1.5 Математическая постановка задачи
- 2. Теоретические основы
- 2.1 Общие понятия
- 2.2 Классификации CRM-систем
- 2.3 Примеры CRM-систем
- 3. Программная реализация
- 3.1 Разработка структуры базы данных
- 3.2 Создание объектов базы данных
- 3.2.1 Создание объектов БД на языке sql-запросов
- 3.2.2 Создание таблицы Library
- 3.2.2.1 Назначение таблицы
- 3.2.3.1 Назначение таблицы
- 3.2.4.1 Назначение таблицы
- 3.2.5.1 Назначение таблицы
- 3.2.2.2 Связи с таблицами
- 3.2.3.2 Связи с таблицами
- 3.2.4.2 Связи с таблицами
- 3.2.5.2 Связи с таблицами
- 3.2.2.3 SQL-команда создания
- 3.2.3.3 SQL-команда создания
- 3.2.4.3 SQL-команда создания
- 3.2.5.3 SQL-команда создания
- 3.2.2.4 Демонстрация создания таблицы
- 3.2.3.4 Демонстрация создания таблицы
- 3.2.4.4 Демонстрация создания таблицы
- 3.2.5.4 Демонстрация создания таблицы
- 3.2.6.4 Демонстрация создания таблицы
- 3.3 Создание проекций
- 3.3.1 Проекция V1
- 3.3.1.1 Назначение проекции
- 3.3.1.2 Текст проекции на языке sql-запросов
- 3.3.1.3 Демонстрация проекции
- 3.3.1.4 Описание логики
- 3.3.2.4 Описание логики
- 3.4 Создание хранимой процедуры с курсором
- 3.4.1 Назначение процедуры
- 3.4.2 Текст процедуры на языке SQL-запросов
- 3.4.3 Демонстрация процедуры
- Заключение