Читайте также:
|
|
Реализация базы данных проводилась через web-интерфейс phpPgAdmin версии 5.0.4 на локальном сервере PostgreSQL версии 9.0.4.
В этой реализации были использованы четыре типа данных:
· serial;
· integer;
· text;
· bigint.
Типы данных были выбраны по следующему принципу:
· При объявлении сурогатного ключа (первичного ключа), поле с этим ключем будет иметь тип serial – целочисленное число с автоинкрементом;
· Все, что имеет счет (цена, количество, стоимость) – тип integer или bigint в зависимости от значений поля;
· Все остальное, т.е. то что не имеет счета – тип text.
Рассмотрим структуру базы данных на примере двух таблиц.
Приведем SQL-код таблицы «Клиент»:
1. CREATE TABLE "Клиент" (
"_PK_КодКлиента" integer NOT NULL,
"ФамилияКлиента" text NOT NULL,
"ИмяКлиента" text NOT NULL,
"ОтчествоКлиента" text NOT NULL,
"ПаспортныеДанныеКлиента" text NOT NULL,
"АдресКлиента" text NOT NULL,
"НомерТелефонаКлиента" text NOT NULL,
"ЭлектронныйЯщикКлиента" text);
2. ALTER TABLE public."Клиент" OWNER TO postgres;
3. COMMENT ON TABLE "Клиент" IS 'Таблица "Клиент"';
4. COMMENT ON COLUMN "Клиент"."_PK_КодКлиента" IS 'Идентификатор клиента';
5. COMMENT ON COLUMN "Клиент"."ФамилияКлиента" IS 'Фамилия клиента';
6. COMMENT ON COLUMN "Клиент"."ИмяКлиента" IS 'Имя клиента';
7. COMMENT ON COLUMN "Клиент"."ОтчествоКлиента" IS 'Отчество клиента';
8. COMMENT ON COLUMN "Клиент"."ПаспортныеДанныеКлиента" IS 'Паспортные данные клиента';
9. COMMENT ON COLUMN "Клиент"."АдресКлиента" IS 'Адрес клиента';
10. COMMENT ON COLUMN "Клиент"."НомерТелефонаКлиента" IS 'Номер телефона клиента';
11. COMMENT ON COLUMN "Клиент"."ЭлектронныйЯщикКлиента" IS 'Электронный ящик клиента';
12. CREATE SEQUENCE "Клиент_КодКлиента_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
13. ALTER TABLE public."Клиент_КодКлиента_seq" OWNER TO postgres;
14. ALTER SEQUENCE "Клиент_КодКлиента_seq" OWNED BY "Клиент"."_PK_КодКлиента";
15. ALTER TABLE ONLY "Клиент" ALTER COLUMN "_PK_КодКлиента" SET DEFAULT nextval('"Клиент_КодКлиента_seq"'::regclass);
16. ALTER TABLE ONLY "Клиент" ADD CONSTRAINT "Клиент_pkey" PRIMARY KEY ("_PK_КодКлиента");
17. ALTER TABLE ONLY "Клиент" ADD CONSTRAINT "Клиент_ПаспортныеДанные_key" UNIQUE ("ПаспортныеДанныеКлиента");
18. ALTER TABLE ONLY "Клиент" ADD CONSTRAINT "Клиент_ЭлектронныйЯщикКлиента_key" UNIQUE ("ЭлектронныйЯщикКлиента");
Рассмотрим SQL-код таблицы «Клиент» поподробнее:
1. Создание таблицы «Клиент». Все поля за исключением поля «ЭлектронныйЯщикКлиента» не могут иметь неопределенного значения (NOT NULL). Поле «_PK_КодКлиента» изначально имел тип данных serial. При выборе этого типа PostgreSQL автоматически создаст последовательность (Последовательность для PostgreSQL является заменой автоинкремента в СУБД MySql) а полю, которому был объявлен тип данных serial будет переопределено как тип integer. Все поля, за исключением «_PK_КодКлиента» имееют тип данных text;
2. Установление владельца postgres для таблицы «Клиент» схемы «public»;
3-11. Определение комментарий для полей;
12. Создание последовательности «Клиент_КодКлиента_seq». Устанавливаем опции: START WITH 1 – начинаем последовательность с 1. INCREMENT BY 1 – при запросе на следующее значение, последовательность будет увеличиваться на значение 1.
13. Изменяем объект «Клиент_КодКлиента_seq» - устанавливаем владельца postgres;
14. Прикрепляем последовательность к полю «_PK_КодКлиента»;
15. Изменяем таблицу «Клиент». Изменяем колонну «_PK_КодКлиента» - устанавливаем в качестве значения по умолчанию функцию nextval – функция, которая возвращает следующее значение объявленной ранее последовательности;
16. Изменяем таблицу «Клиент». Добавляем ограничение «Клиент_pkey» - объявление первичного ключа для колонны «_PK_КодКлиента»;
17. Изменяем таблицу «Клиент». Добавляем ограничение «Клиент_ПаспортныеДанные_key» - объявление уникального ключа для колонны «ПаспортныеДанныеКлиента».
18. Аналогично запросу 17.
Приведем SQL-код таблицы «Склад»:
1. CREATE TABLE "Склад" (
"_PF_КодУстройства" integer NOT NULL,
"КоличествоУстройств" bigint NOT NULL);
2. ALTER TABLE public."Склад" OWNER TO postgres;
3. COMMENT ON TABLE "Склад" IS 'Таблица "Склад"';
4. COMMENT ON COLUMN "Склад"."_PF_КодУстройства" IS 'Идентификатор устройства';
5. COMMENT ON COLUMN "Склад"."КоличествоУстройств" IS 'Количество устройства';
6. ALTER TABLE ONLY "Склад" ADD CONSTRAINT "Склад__PF_КодУстройства_fkey" FOREIGN KEY ("_PF_КодУстройства") REFERENCES "Устройство"("_PK_КодУстройства");
7. ALTER TABLE ONLY "Склад" ADD CONSTRAINT "_PF_КодУстройства_pkey" PRIMARY KEY ("_PF_КодУстройства";
Рассмотрим подробнее SQL-код таблицы «Склад»:
1. Создание таблицы «Склад». Объявление двух полей целочисленного типа;
2. Устанавливаем владельца postgres для таблицы «Склад»;
3-5. Определяем комментарий для полей и самой таблицы;
6. Изменяем таблицу «Склад». Добавляем ограничение внешнего ключа «Склад_PF_КодУстройства_fkey» на колонну «_PF_КодУстройства», устанавливаем ссылку на поле «_PK_КодУстройства» таблицы «Устройство»;
7. Изменяем таблицу «Склад». Добавляем ограничение первичного ключа «_PF_КодУстройства_pkey» на поле «_PF_КодУстройства».
SQL-код остальных таблиц можно просмотреть в приложении 3.
Заключение
Таким образом мы спроектировали информационную систему «Провайдер конечной мили Gigabit». Построили диаграмму прецедентов и диаграмму отношений сущностей в среде UML. Спроектировали и рассмотрели структуру базы данных по предметной области «Провайдер конечной мили Gigabit». В данной работе было продемонстрировано создание таблиц, колонок, ограничений первичного ключа, внешнего ключа, уникального ключа и создание последовательностей, объяснение некоторых функций. Рассмотрели список некоторых тип данных и их употреблений. В ходе курсовой работы, а именно в практической части были использованы следующие программные средства:
- Umbrello v. 2.6.5 – унифицированный язык моделирования.
- PostgreSQL v. 9.0.4 – сервер СУБД.
- phpPgAdmin v. 5.0.4 – веб-интерфейс СУБД PostgreSQL.
Список литературы
1. http://www.postgresql.org/files/documentation/pdf/9.0/postgresql-9.0-US.pdf
2. http://postgresql.ru.net/manual/datatype.html
3. Дж. Уорсли, Дж. Дрейк. PostgreSQL для профессионалов. Изд. Питер, 2003 г.
4. Арлоу Д., Нейштадт А - UML 2 и унифицированный процесс. Практический объектно-ориентированный анализ и проектирование, 2-е издание. – Пер. с англ. – СПб: Символ-Плюс, 2007. – 624 с.
5. Грекул В. И., Г. Н. Денищенко, Н. Л. Коровкина. - Проектирование информационных систем: курс лекций: учеб. Пособие для студентов вузов, обучающихся по специальностям в области информ. технологий – М.: Интренет-Ун-т Информ. технологий, 2005. – 304 с.
Дата добавления: 2015-09-04; просмотров: 165 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Моделирование диаграммы прецедентов и диаграммы отношений сущностей по предметной области «Провайдер конечной мили Gigabit». | | | Приложения |