Электронная записная книжка
Все столбцы таблиц содержат неделимые значения, т. е. соответствуют первой нормальной форме. Все неключевые атрибуты таблиц функционально полно зависят от первичных ключей, таким образом таблицы находятся во второй нормальной форме. Таблицы не содержат транзитивных зависимостей и находятся в третьей нормальной форме. В таблицах нет многозначных зависимостей, и они находятся в четвертой нормальной… Читать ещё >
Электронная записная книжка (реферат, курсовая, диплом, контрольная)
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Владимирский Государственный Университет имени А. Г. и Н. Г. Столетовых Кафедра УИТЭС
Пояснительная записка к курсовой работе
по дисциплине «Базы данных»
на тему: «Электронная записная книжка»
Выполнил: Труфанова М.Ю.
Руководитель: Градусов А.Б.
Владимир 2013
Аннотация
Данная курсовая работа представляет собой создание базы данных электронная записная книжка. Записная книжка — непременный атрибут любого творческого или делового человека. База данных предназначена для хранения информации о знакомых и об организациях. Для базы данных разработано приложение, которое упростит работу с данными.
База данных создана при помощи MS SQL Server 2000. Приложение разработано с помощью Borland Delphi 7. Для реализации базы данных было составлено 6 таблиц с необходимыми связями между ними.
Также были созданы формы для удобного и быстрого ввода данных, запросы и отчеты для удобного вывода требуемой информации.
- 1. Концептуальное (инфологическое) проектирование
- 2. Обоснование выбора СУБД
- 3. Датологическое проектирование
- 3.1 Определение типов и размеров атрибутов
- 4. Создание и разработка базы данных
- 4.1 Создание базы данных
- 4.2 Создание таблиц
- 4.3 Поддержка целостности данных в реляционной БД
- 4.3.1 Декларативная поддержка целостности
- 4.3.2 Процедурная поддержка целостности
- 5. Разработка приложения
- 5.1 Соединение с базой данных
- 5.2 Разработка главной формы приложения
- 5.3 Создание второстепенных форм
- 5.3.1 Реализация запросов на выборку данных
- 5.3.2 Реализация вставки новой записи
- 5.3.3 Создание отчетов
- 6. Инструкция по эксплуатации программы
- Список литературы
- 1. Концептуальное (инфологическое) проектирование
- На рис 1. представлена концептуальная модель (модель сущность-связь), отражающая семантику предметной области. Далее эта модель может быть преобразована в любую систему базы данных.
- Рис. 1. Концептуальная модель БД «Электронная записная книжка»
- Данная модель состоит из следующих сущностей и входящих в них атрибутов:
- ѕ Сотрудник: Код_сотрудника, ФИО, Телефон, Должность, E-mail ;
- ѕ Организация: Код_организации, Название, Адрес, Деятельность, Телефон, Сайт ;
- ѕ Друг: Id_dr, ФИО_друга, День рождения, Сайт_друга, E-mail, Мобильный, Дом_телефон, Телефон родителя, Дом_адрес, Заметка;
- ѕ Учреждение: Id_uch, Название, Адрес, Сайт, Телефон1, Телефон2.
- Между этими сущностями установлены связи, показывающие, каким образом эти сущности соотносятся или взаимосвязаны между собой. Каждая связь характеризуется мощностью (максимальным количеством элементов одной сущности, которые связаны с одним элементом другой сущности) и кардинальностью, которая может быть обязательной или необязательной.
- Отношения между сущностями на рисунке 1 следующие:
- ѕ Несколько сотрудников могут работать только в одной организации. Такая связь имеет мощность один-ко-многим, необязательную кардинальность со стороны сущности «Сотрудник» и обязательную кардинальность со стороны сущности «Организация».
- ѕ Также несколько друзей учатся по крайней мере только в одном учреждении. Связь имеет мощность много-ко-многим, обязательную кардинальность у сущности «Учреждение» и необязательную у сущности «Друг» .
- 2. Обоснование выбора СУБД
- Для создания БД будем использовать СУБД MS SQL Server 2000.
- Microsoft SQL Server 2000 — это законченное предложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям. В сервер SQL Server 2000 включена поддержка языка XML и протокола HTTP, средства повышения быстродействия и доступности, позволяющие распределить нагрузку и обеспечить бесперебойную работу, функции для улучшения управления и настройки, снижающие совокупную стоимость владения. Эффективное управление базами данных с привлечением минимального числа ИТ-специалистов.
- Реляционное ядро БД SQL Server 2000 — это реляционная СУБД, хранящая и осуществляющая управление данными в реляционных таблицах. По запросу приложения реляционное ядро БД связывает таблицы друг с другом.
- Реляционное ядро БД хранит подробные записи о транзакциях, генерируемых системами оперативной обработки транзакций, а также осуществляет оперативную аналитическую обработку данных по запросу специализированных хранилищ данных. Реляционное ядро БД обеспечивает достоверность и защиту хранимых данных, отказоустойчивость, динамически оптимизирует производительность, а также налагает блокировки для реализации параллелизма.
- Основные возможности Ms SQL Server 2000:
- 1. Полное использование возможностей интернета;
- 2. Высокая масштабируемость и надежность;
- 3. Быстрый выход на рынок.
- 3. Даталогическое проектирование
- Даталогическое проектирование представляет собой преобразование концептуальной модели в реляционную, при котором каждой сущности ставится в соответствие реляционная таблица. Атрибуты сущности становятся атрибутами таблицы. 1]
- Таким образом, в результате преобразования концептуальной модели получаем следующую реляционную модель:
- Сотрудник: Код_сотрудника, ФИО, Телефон, Должность, E-mail ;
- Организация: Код_организации, Название, Адрес, Деятельность, Телефон, Сайт ;
- Работает: Код_сотрудника, Код_организации;
- Друг: Id_dr, ФИО_друга, День рождения, Сайт_друга, E-mail, Мобильный, Дом_телефон, Телефон родителя, Дом_адрес, Заметка;
- Учреждение: Id_uch, Название, Адрес, Сайт, Телефон1, Телефон2.
- Учится: Код_друга, Код_учреждения.
Проверим таблицы на соответствие нормальным формам.
Все столбцы таблиц содержат неделимые значения, т. е. соответствуют первой нормальной форме. Все неключевые атрибуты таблиц функционально полно зависят от первичных ключей, таким образом таблицы находятся во второй нормальной форме. Таблицы не содержат транзитивных зависимостей и находятся в третьей нормальной форме. В таблицах нет многозначных зависимостей, и они находятся в четвертой нормальной форме. Таким образом, все полученные таблицы имеют четвертую нормальную форму. Дальнейшая нормализация не требуется.
3.1 Определение типов и размеров атрибутов
Дальнейшим шагом проектирования является определение типов и размеров атрибутов, а также выделение ключей.
В таблице Sotrudnik (табл. 1) в качестве ключевого поля устанавливаем Kod_sotr
Таблица 1
Наименование поля | Название поля | Тип данных | Длина | ||
1. | Код сотрудника | Kod_sotr | int | ||
2. | ФИО | FIO | varchar | ||
3. | Телефон | tel | varchar | ||
4. | varchar | ||||
5. | Должность | doljnost | varchar | ||
Для таблицы Organiz (табл. 2) в качестве ключевого поля устанавливаем kod_org
Таблица 2
Наименование поля | Название поля | Тип данных | Длина | ||
1. | Код организации | kod_org | int | ||
2. | Название | naimen | varchar | ||
3. | Адрес | address | varchar | ||
4. | Деятельность | deaytelnost | varchar | ||
5. | Телефон | tele | varchar | ||
6. | Сайт | site | varchar | ||
В качестве ключевого поля таблицы Rabotaet (табл. 3) зададим kod_sotr
Таблица 3
Наименование поля | Название поля | Тип данных | Длина | ||
1. | Код сотрудника | kod_sotr | int | ||
2. | Код организации | kod_org | int | ||
В качестве ключевого поля таблицы Friend (табл. 4) зададим id_dr:
Таблица 4
Наименование поля | Название поля | Тип данных | Длина | ||
1. | Код друга | id_dr | int | ||
2. | ФИО друга | FIO_dr | varchar | ||
3. | Домашний адрес | dom_address | varchar | ||
4. | Домашний телефон | dom_tel | varchar | ||
5. | Сайт друга | site_dr | varchar | ||
6. | varchar | ||||
7. | Телефон родителя | tel_rod | varchar | ||
8. | Мобильный | mobil | varchar | ||
9. | День рождения | birthday | dateTime | ||
10. | Заметка | zametka | varchar | ||
Поля таблицы Uchat (табл. 5)
Таблица 5
Наименование поля | Название поля | Тип данных | Длина | ||
1. | Код друга | id_dr | int | ||
2. | Код учреждения | id_uch | int | ||
В качестве ключевого поля таблицы Zanyat (табл. 6) зададим id_uch:
Таблица 6
Наименование поля | Название поля | Тип данных | Длина | ||
1. | Код учреждения | id_uch | int | ||
2. | Название | nazvanie | varchar | ||
3. | Адрес учреждения | add_uch | varchar | ||
4. | Сайт | website | varchar | ||
5. | Телефон 1 | tel1 | varchar | ||
6. | Телефон 2 | tel2 | varchar | ||
Таким образом, реляционная модель базы данных выглядит следующим образом (рис. 2):
Рис. 2. Реляционная модель базы данных.
4. Создание и разработка базы данных
4.1 Создание базы данных
база реляционный электронный записной После завершения этапа даталогического проектирования приступаем к созданию базы данных в MS SQL Server.
Создание таблиц БД производится с помощью мастера создания таблиц. На главной странице в поле Databases выбираем New Database, вводим имя новой базы данных «book» .
Новая созданная БД отобразится в списке баз данных (рис. 3).
Рис. 3. Создание новой БД
4.2 Создание таблиц
Для создания таблиц в списке баз данных открываем узел book и щелкаем правой кнопкой мыши на пункт Tables. В появившемся меню выбираем пункт New Table. На экране появится диалоговое окно для создания структуры новой таблицы. В столбце Column Name указываются атрибуты таблицы, в столбце Data Type — типы данных и их длины, в столбце Allow NULL — допускаются ли пустые значения в конкретном поле или нет.
При создании таблицы обязательно нужно указывать ее первичный ключ, т.к. ключи (и первичные и внешние) — это средство обеспечения целостности базы данных.
Выбираем столбец, который будет первичным ключом и нажимаем кнопку Set Primary Key. Если в таблице первичный ключ составной, то выделяем одновременно столбцы, входящие в состав первичного ключа, и также нажимаем Set Primary Key.
Типы и размеры атрибутов таблиц представлены на рис. 4.
Рис. 4.a. Проект таблицы Sotrudnik
Рис. 4.b. Проект таблицы Rabotaet
Рис. 4.c. Проект таблицы Organiz
Рис. 4.d. Проект таблицы Friend
Рис. 4.e. Проект таблицы Uchat
Рис. 4.f. Проект таблицы Zanyat
4.3 Поддержка целостности данных в реляционной БД
Целостность данных — свойство БД, означающее, что она содержит полную, непротиворечивую информацию, адекватно отражающую предметную область. Рассмотрим основные способы поддержания целостности, используемые в проектируемой БД.
Логическая целостность означает отсутствие логических ошибок в БД, к которым относятся нарушение структуры БД или ее объектов, удаление или изменение установленных связей между объектами, ввод неправильных данных. Для обеспечения логической целостности данных накладывают ограничения целостности — условия, которым должны удовлетворять хранимые в базе данные. Существует два способа реализации ограничений целостности: декларативная и процедурная поддержки. [1]
4.3.1 Декларативная поддержка целостности
Декларативная поддержка заключается в определении ограничений средствами языка описания данных. Эти ограничения относятся к немедленно проверяемым ограничением, которые проверяются непосредственно в момент выполнения операции, которая может нарушить целостность.
Она включает в себя структурные ограничения и семантические.
Структурные ограничения используются для придания данным осмысленной структуры. К ним относятся:
1. Целостность сущности. При проектировании БД каждая таблица соответствует некоторому объекту внешнего мира. В таблице присутствует первичный ключ, который однозначно определяет каждую запись и не может быть пустым.
2. Ссылочная целостность. Значение непустого внешнего ключа должно быть равно одному из текущих значений ключа другой таблицы.
3. Функциональные зависимости определяют все возможные состояния БД. Необходимо следить за их полнотой и по возможности избегать избыточности.
4.3.2 Процедурная поддержка целостности
Поддержка семантической целостности процедурным путем включает все возможные проверки не на уровне СУБД, а на уровне процедур обработки и ввода данных средствами среды программирования, с помощью которой создается программа. Хранимая процедура — это подпрограмма, работающая на сервере и управляющая его процессами.
В разрабатываемой БД использовались следующие хранимые процедуры:
Информация о ближайших днях рождения:
declare @d AS datetime
SET @d = getdate ()
SELECT FIO_dr, birthday
FROM Friend WHERE
DATEADD (yy, YEAR (@d) — YEAR (birthday), birthday) > @d
OR
YEAR (dateadd (dd, 7, @d)) > YEAR (@d)
AND
DATEADD (dd, 7, @d) > DATEADD (yy, YEAR (dateadd (dd, 7, @d)) — YEAR (birthday), birthday)
5. Разработка приложения
Для работы с базами данных через приложение используются различные драйвера баз данных. Наиболее перспективной является технология OLE DB и в частности упрощенная ее модификация ActiveX Data Object. В качестве среды программирования приложения рассматривается среда Borland Delphi 7.
Cреда программирования Delphi 7.0 включает в себя полный набор визуальных инструментов, который позволяет быстро создавать приложения, предназначенные для работы с базами данных, различной степени сложности — от простейших программ до профессиональных. Delphi использует структурный объектно-ориентированный язык программирования Object Pascal, который сочетает простоту программирования с высокой эффективностью.
5.1 Соединение с базой данных
Создаем и сохраняем новый проект Project1 в Delphi 7. В процессе работы будем использовать такие компоненты, как:
ADOConnection (вкладка ADO) — инкапсулирует подключение к БД;
ADOQuery — запрос к БД;
ADOTable — таблица базы данных;
DataSource (вкладка Data Access) — источник данных для визуальных компонентов; служит для связывания визуальных компонентов с наборами данных (вроде ADOQuery); DBGrid (вкладка DataControls) — табличное представление данных.
Для подключения к базе данных на вкладке Поставщик данных выбираем Microsoft SQL Server выберем Microsoft OLE DB provider for SQL Server. В раскрывающемся списке выбираем имя сервера. Под пунктом два вводим имя пользователя. В третьем пункте выбираем базу данных в раскрывшемся списке. Нажимаем кнопку Проверить подключение и затем нажимаем кнопку Ok.
5.2 Разработка главной формы приложения
На главной форме будут располагаться только элементы Buttom, при нажатии на которые будут осуществлять переход на другие формы. Делаем двойной щелчок по созданной кнопке и прописываем следующий код:
procedure TForm1. Button1Click (Sender: TObject);
begin
Form3.Show;
end;
Помещаем на форму компонент Image. В свойстве picture вводим путь к картинке.
Главная форма выглядит следующим образом (рис.8).
Рис. 5. Главная форма
Для связи всех остальных форм с базой данных будем использовать компоненты ADOConnection, ADOQuery, ADOTable, DataSource. Для удобства будем использовать Data Module, в котором будут находится перечисленные выше компоненты. Для того что бы создать Data Module щелкаем по вкладке File, выбираем New, Data Module.
5.3 Создание второстепенных форм
5.3.1 Реализация запросов на выборку данных
В приложении базы данных две второстепенные формы осуществляют выборку данных, это Информация о конкретном лице или организации; Список организаций, занимающихся определенной деятельностью
Для формы Информация о конкретном лице или организации. Для отображения данных используется элемент DBGrid. В AdoQuery2 выбираем свойство SQL и вводим следующий запрос: SELECT*FROM Organiz
Затем подключаем Form5 к DataModule2. DataSource2 и располагаем на форме компонент Edit, в котором пропишем следующее:
procedure TForm5. Edit1Change (Sender: TObject);
var a, b: string; begin a:='%'+Unit5.
Form5.Edit1.Text+'%';
b:=QuotedStr (a); with DataModule2.
ADOQuery2 do begin close;
SQL.Clear; SQL. Add
('SELECT * FROM Organiz WHERE naimen like'+b);
Open; end;
end;
Тоже проведем с Form7: в AdoQuery3 выбираем свойство SQL и вводим следующий запрос: SELECT*FROM Friend
Для компонента Edit:
procedure TForm7. Edit1Change (Sender: TObject);
var a, b: string; begin a:='%'+Unit7.
Form7.Edit1.Text+'%';
b:=QuotedStr (a); with Data
Module2.ADOQuery3 do begin close;
SQL.Clear; SQL. Add
('SELECT * FROM Friend WHERE FIO_dr like'+b);
Open; end;
end;
Для формы Form3, в AdoQuery1 выбираем свойство SQL и вводим следующий запрос: SELECT*FROM Sotrudnik
В расположенный на форме компонент Edit пишем код:
procedure TForm3. Edit1Change (Sender: TObject);
var a, b: string; begin a:='%'+Unit3.
Form3.Edit1.Text+'%';
b:=QuotedStr (a); with DataModule2.
ADOQuery1 do begin close;
SQL.Clear; SQL. Add
('SELECT * FROM Sotrudnik WHERE FIO like'+b);
Open; end;
end;
5.3.2 Реализация вставки новой записи
Добавление новой записи выполняется в формах: Сотрудники, Организации, Друзья, Место учебы/работы друзей, Rabotaet, Uchat. Для реализации вставки новой записи в таблицу Sotrudnik необходимо добавить в Data Module следующие компоненты: AdoQuery1, DataSource1. На форму Сотрудники необходимо добавить DbGrid, Button.
В свойствах ADOQuery1 пишем следующий запрос: SELECT * FROM Sotrudnik
После двойного щелчка по элементу Button пишем следующий текст:
Form4.show;
DataModule2.AdoQuery1.Insert;
Форма Сотрудники представлена на рис. 6.
Следующая форма, которая выполняет вставку новой записи — Новый сотрудник.
Рис. 6. Форма Сотрудники
Форма Новый заказ представлена на рис. 7.
Рис. 7. Форма Новый сотрудник
После щелчка по элементу Edit1 В свойствах DataSourse выбираем DataModule2. DataSource1, в свойстве DataField выбираем поле FIO. Для остальных компонентов Edit выбираем нужный DataField.
Для форм Организации, Друзья, Место учебы/работы друзей проведены такие же процедуры, как и для формы Сотрудники.
Для реализации вставки новой записи в таблицу Rabotaet необходимо добавить в Data Module следующие компоненты: AdoQuery5, DataSource5. На форму необходимо добавить DbGrid, Button, DBLookupComboBox1, DBLookupComboBox2
В свойствах ADOQuery1 пишем следующий запрос:
select*from Rabotaet
В свойствах DBLookupComboBox1:
ListSourse: DataModule2. DataSource2
DataSourse: DataModule2. DataSource5
DataField: kod_org
ListField: naimen
KeyField: kod_org
В свойствах DBLookupComboBox2:
ListSourse: DataModule2. DataSource1
DataSourse: DataModule2. DataSource5
DataField: kod_sotr
ListField: FIO
KeyField: kod_sotr
Форма Rabotaet представлена на рис. 8.
Рис. 8. Форма Rabotaet
По аналогии создана форма Uchat.
5.3.3 Создание отчетов
В приложении осуществляется вывод двух отчетов: Информация о выбранных организациях или частных лицах, Полный список контактных данных о любом знакомом или организации.
Осуществим вывод этих представлений на форму с помощью компонентов ADOQuery, DataSource, DBGrid, также на форме разместим элемент Button при щелчке, по которому будет формироваться отчет в Rave Report [2]
Форма Информация о выбранных организациях или частных лицах представлена на рис. 9.
Рис.9
Форма Полный список контактных данных о любом знакомом или организации представлена на рис. 10.
Рис.10
6. Инструкция по эксплуатации программы
Программа запускается двойным кликом на ярлыке el book.exe. Открывается главная форма, на которой располагаются кнопки с возможными действиями.
На главной форме расположено пять кнопок, позволяющие перейти в разные разделы приложения: Сотрудники, Организации, Друзья, Место учебы/работы друзей, Ближайшие Дни рождения друзей. В этих разделах можно проводить необходимые манипуляции с данными.
Интерфейс приложения можно отнести к стандартному интерфейсу MS Windows. Доступ ко всем экранным формам приложения осуществляется как из главной формы приложения, так и из других форм и главного меню программы.
В процессе проектирования разработана двухуровневая структура пользовательского интерфейса. На первом уровне расположена «Главная форма». На втором уровне расположены остальные формы.
Интерфейс приложения интуитивно понятен (отсутствие у пользователя сложностей в поиске необходимых директив или элементов интерфейса для управления процессом решения поставленной задачи).
1. Базы Данных. Методические указания к курсовой работе [Книга] / авт. Градусов А. Б. Гришин В.С., Галкин А. А., Лагерь И. В. — Владимир: Редакционно-издательский комплекс Владимирского государственного университета, 2004.
2. Фаронов В. В, Шумаков П. В. Delphi 5. Руководство разработчика баз данныхМ.:"Нолидж", 2000.-640., ил.
3. Гофман В. Э., Хомоненко А. Д. Работа с базами данных в Delphi. СПб: БХВ-Петербург, 2006. 656 с.