Министерство образования и науки РФ
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Новосибирский государственный технический университет
Лабораторная работа №8
Функции в PostgreSQL. Проектирование структуры БД
по дисциплине «Базы данных»
Студенты:Преподаватель: Менжулин С.А.
Абалов Н.
Антонов А.
Факультет: АВТ
Группа: АМ-610
Вариант: 8
Новосибирск
2009
Цель работы
Изучить правила создания функций. Приобрести практические навыки создания функций в среде PostgreSQL. Научиться проектировать БД в целом на основе поставленного задания с использованиемвсех полученных ранее базовых знаний и навыков.
Задание
Задание. Общая часть: Ознакомиться с теоретическими сведениями о возможностях создания пользовательских функций в PostgreSQL. Разработать БД в соответствии с индивидуальным заданием. Создать функции, реализующие интерфейс для работы с базой данных. Проверить работоспособность функций путем выполнения этих функций с параметрами,обеспечивающими как успешное выполнение функции, так и невыполнение функции.
Обязательные требования к БД:
• Наличие таблиц-справочников и таблиц, использующих справочники. Предусмотреть сохранение ссылочной целостности для таблиц, использующих таблицы-справочники.
• Предусмотреть следующие роли:
o оператор БД (пополнение справочников)
o пользователь БД (основнаяработа с БД, с ограничениями для некоторого вида операций)
o аналитик (разрешено выполнение запросов и функций, не изменяющих данные в БД)
o администратор БД (просмотр протокола операций, любые изменения БД)
• Действия, изменяющие БД пользователем с любой ролью протоколируются в таблице-журнале операций.
• Для всех запросов необходимо создать индексы (длягарантированного использования индексов можно использовать отключение параметра enable_seqscan в текущей сессии)
Создать функции, реализующие интерфейс для работы с базой данных. Проверить работоспособность функций путем выполнения этих функций с параметрами, обеспечивающими как успешное выполнение функции, так и невыполнение функции.
Вариант 8: База данных жилищной управляющей компании. Должна содержать следующиеданные: информацию об исполнителях работ и выполненных работах, жильцах, выставленных им счетах и выполненных ими платежах. Предусмотреть анализ следующих показателей: составить рейтинг злостных неплательщиков, рейтинг исполнителей работ с указанием их доли в статье расходов.
Ход работы
Создание таблиц:
CREATE TABLE bill
(
id serial NOT NULL,
person_id integer NOT NULL,bill_date date NOT NULL,
job_id integer NOT NULL,
CONSTRAINT bill_id PRIMARY KEY (id),
CONSTRAINT bill1 FOREIGN KEY (person_id)
REFERENCES person (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT bill2 FOREIGN KEY (job_id)
REFERENCES job (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE job
(id serial NOT NULL,
task_id integer NOT NULL,
worker_id integer NOT NULL,
job_date date NOT NULL,
completed boolean NOT NULL DEFAULT false,
CONSTRAINT job_id PRIMARY KEY (id),
CONSTRAINT job1 FOREIGN KEY (task_id)
REFERENCES task (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT job2 FOREIGN KEY (worker_id)REFERENCES workers (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE loghist
(
id serial NOT NULL,
user_name character varying(128) NOT NULL,
hist_date timestamp with time zone NOT NULL,
"action" character varying(32) NOT NULL,
CONSTRAINT log_id PRIMARY KEY (id)
)
CREATE TABLE payment
(
id serial...
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Новосибирский государственный технический университет
Лабораторная работа №8
Функции в PostgreSQL. Проектирование структуры БД
по дисциплине «Базы данных»
Студенты:Преподаватель: Менжулин С.А.
Абалов Н.
Антонов А.
Факультет: АВТ
Группа: АМ-610
Вариант: 8
Новосибирск
2009
Цель работы
Изучить правила создания функций. Приобрести практические навыки создания функций в среде PostgreSQL. Научиться проектировать БД в целом на основе поставленного задания с использованиемвсех полученных ранее базовых знаний и навыков.
Задание
Задание. Общая часть: Ознакомиться с теоретическими сведениями о возможностях создания пользовательских функций в PostgreSQL. Разработать БД в соответствии с индивидуальным заданием. Создать функции, реализующие интерфейс для работы с базой данных. Проверить работоспособность функций путем выполнения этих функций с параметрами,обеспечивающими как успешное выполнение функции, так и невыполнение функции.
Обязательные требования к БД:
• Наличие таблиц-справочников и таблиц, использующих справочники. Предусмотреть сохранение ссылочной целостности для таблиц, использующих таблицы-справочники.
• Предусмотреть следующие роли:
o оператор БД (пополнение справочников)
o пользователь БД (основнаяработа с БД, с ограничениями для некоторого вида операций)
o аналитик (разрешено выполнение запросов и функций, не изменяющих данные в БД)
o администратор БД (просмотр протокола операций, любые изменения БД)
• Действия, изменяющие БД пользователем с любой ролью протоколируются в таблице-журнале операций.
• Для всех запросов необходимо создать индексы (длягарантированного использования индексов можно использовать отключение параметра enable_seqscan в текущей сессии)
Создать функции, реализующие интерфейс для работы с базой данных. Проверить работоспособность функций путем выполнения этих функций с параметрами, обеспечивающими как успешное выполнение функции, так и невыполнение функции.
Вариант 8: База данных жилищной управляющей компании. Должна содержать следующиеданные: информацию об исполнителях работ и выполненных работах, жильцах, выставленных им счетах и выполненных ими платежах. Предусмотреть анализ следующих показателей: составить рейтинг злостных неплательщиков, рейтинг исполнителей работ с указанием их доли в статье расходов.
Ход работы
Создание таблиц:
CREATE TABLE bill
(
id serial NOT NULL,
person_id integer NOT NULL,bill_date date NOT NULL,
job_id integer NOT NULL,
CONSTRAINT bill_id PRIMARY KEY (id),
CONSTRAINT bill1 FOREIGN KEY (person_id)
REFERENCES person (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT bill2 FOREIGN KEY (job_id)
REFERENCES job (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE job
(id serial NOT NULL,
task_id integer NOT NULL,
worker_id integer NOT NULL,
job_date date NOT NULL,
completed boolean NOT NULL DEFAULT false,
CONSTRAINT job_id PRIMARY KEY (id),
CONSTRAINT job1 FOREIGN KEY (task_id)
REFERENCES task (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT job2 FOREIGN KEY (worker_id)REFERENCES workers (id) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE loghist
(
id serial NOT NULL,
user_name character varying(128) NOT NULL,
hist_date timestamp with time zone NOT NULL,
"action" character varying(32) NOT NULL,
CONSTRAINT log_id PRIMARY KEY (id)
)
CREATE TABLE payment
(
id serial...
Поделиться рефератом
Расскажи своим однокурсникам об этом материале и вообще о СкачатьРеферат