Автор работы: Пользователь скрыл имя, 18 Ноября 2013 в 20:21, курсовая работа
Мета цієї курсової роботи полягає у розробці бази даних предметної області, яка має відношення до соціальної мережі. У загальному випадку створення будь-якої програмної системи, у тому числі і бази даних, проходить складний життєвий цикл. Існує багато методологій по опису життєвого циклу проектування та розробки баз даних. У цій курсовій роботі буде використано методологію, згідно з якої життєвий цикл складається з наступних етапів: розробка стратегії автоматизації предметної області; проведення системного аналізу предметної області; концептуальне моделювання предметної області;
логічне та фізичне проектування.
ЗМІСТ
ВСТУП 3
1. СТРАТЕГІЯ АВТОМАТИЗАЦІЇ ПРЕДМЕТНОЇ ОБЛАСТІ 3
1.1. Загальні положення 3
1.2. Мета, цілі та задачі створення бази даних 4
1.3. Вимоги до інформаційного забезпечення 4
2. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ 5
2.1. Загальні положення системного аналізу ПО 5
2.2. Загальні положення соціальної мережі 5
2.3. Системний аналіз предметної області 6
3. КОНЦЕПТУАЛЬНЕ МОДЕЛЮВАННЯ ПРЕДМЕТНОЇ ОБЛАСТІ 10
3.1. Теоретичні положення концептуального моделювання 10
3.2. Мова ER—моделювання ПО 12
3.2. Побудова концептуальної моделі соціальної мережі 13
4. ЛОГІЧНЕ ТА ФІЗИЧНЕ ПРОЕКТУВАННЯ БАЗИ ДАНИХ 13
4.1. Логічне проектування 14
Таблиця 1. Відношення сутності «Користувач» 15
Таблиця 2. Відношення сутності «Тип користувача» 17
Таблиця 3. Відношення сутності «Відношення» 17
Таблиця 4. Відношення сутності «Тип відношення» 18
Таблиця 5. Відношення сутності «Країна» 18
Таблиця 6. Відношення сутності «Місто» 18
Таблиця 7. Відношення сутності «Структура повідомлення» 19
Таблиця 8. Відношення сутності «Повідомлення» 19
Таблиця 9. Відношення сутності «Медіафайл» 20
Таблиця 10. Відношення сутності «Тип медіафайлу» 20
Таблиця 11. Відношення сутності «Новини» 21
Таблиця 12. Відношення сутності «Налаштування приватності» 21
4.2. Фізичне проектування 22
4.2.1. Скрипти створення бази даних 22
4.2.2 SQL- скрипт заповнення початковими даними 25
4.2.3. Інформаційно–пошукові запити 26
ВИСНОВКИ 28
);
CREATE TABLE News
(
NewsPK NUMBER(12) CONSTRAINT NewsPK_constr_1 PRIMARY KEY,
UsersFK NUMBER(5) NOT NULL CONSTRAINT News_UsersFK_constr_1 REFERENCES Users(UsersPK) ON DELETE CASCADE,
Name VARCHAR2(128) NOT NULL,
Text VARCHAR2(2048) NOT NULL,
Date_ DATE NOT NULL
);
CREATE TABLE PrivacySettings
(
PrivacySettingsPK Number(7) CONSTRAINT PrivacySettings_const_1 PRIMARY KEY,
SendMessage VARCHAR2(50) CONSTRAINT SendMessage_constr_1 CHECK(SendMessage IN((‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All',
GeneralInformation VARCHAR2(50) CONSTRAINT GeneralInformation_constr_1 CHECK( GeneralInformation IN (‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All',
WatchMultimedias VARCHAR2(50) CONSTRAINT InfRes_constr_1 CHECK( WatchMultimedias IN((‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All'
WhoCanIntiveApplications VARCHAR2(50) CONSTRAINT WhoCanIntiveApplications _constr_1 CHECK( GeneralInformation IN (‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All',
WhoCanPostMassegesWall VARCHAR2(50) CONSTRAINT WhoCanPostMassegesWall _constr_1 CHECK( GeneralInformation IN (‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All',
WhoСanSeePhotosOfMe VARCHAR2(50) CONSTRAINT WhoСanSeePhotosOfMe _constr_1 CHECK( GeneralInformation IN (‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All',
WhoСanSeeMyAudio VARCHAR2(50) CONSTRAINT WhoСanSeeMyAudio _constr_1 CHECK( GeneralInformation IN (‘All’, ‘Only friends’, ‘friends of friends’, ‘some friends’, ‘all but’)) default 'All',
);
INSERT INTO Relationtype VALUES(0, 'Друг');
INSERT INTO Relationtype VALUES(1, 'Недруг');
INSERT INTO PrivacySetting VALUES(0, 'Only friend', 'Only friend, ‘friends of friends’);
INSERT INTO PrivacySetting VALUES(1, 'All', 'Only friend', 'Only friend');
INSERT INTO PrivacySetting VALUES(2, 'All', 'Only friend', ‘some friends’);
INSERT INTO MultimediaType VALUES(0, 'Фото');
INSERT INTO MultimediaType VALUES(1, 'Видео');
INSERT INTO MultimediaType VALUES(2, 'Аудио');
INSERT INTO MultimediaType VALUES(2, 'Текст');
INSERT INTO UsersType VALUES(0, 'Администратор');
INSERT INTO UsersType VALUES(1, 'Модератор');
INSERT INTO UsersType VALUES(2, 'Пользователь');
INSERT INTO UsersType VALUES(3, 'Гость');
INSERT INTO Country VALUES(0, 'Украина');
INSERT INTO Country VALUES(1, 'Россия');
INSERT INTO Country VALUES(2, 'Молдова');
INSERT INTO Sity VALUES(0, 0, 'Москва');
INSERT INTO Sity VALUES(1, 1, 'Киев');
INSERT INTO Sity VALUES(2, 1, 'Иванков');
INSERT INTO Sity VALUES(3, 2, 'Винница');
INSERT INTO Sity VALUES(4, 2, 'Кишинев');
INSERT INTO Users VALUES(
0,
'BogdanStakhov@gmail.com',
'Bogdan',
'Stakhov',
'
'29.12.1989',
'M',
4,
'',
0500890790,
Doomsperio,
'',
1,
0,
3,
'True',
0);
INSERT INTO Users VALUES(
1,
'Mac7Stakhov@mail.ru',
'Maksim',
'Stakhov',
'
'18.07.1991',
'M',
3,
'',
0349872758,
987654321,
'',
'',
3,
1,
'',
'True',
1);
INSERT INTO Users VALUES(
2,
'AnatoliyStakhov@mail.ru',
'Anatoliy',
'Stakhov',
'
'27.02.1964',
'M',
2,
'',
'',
1234567,
'',
'',
1,
1,
'',
'False',
2);
INSERT INTO News VALUES(0, 0, 'First new', 'Hello, word!', '25.05.2013');
INSERT INTO Relation VALUES(0, 1, 0, 'True');
INSERT INTO Relation VALUES(0, 2, 0, 'True');
INSERT INTO Relation VALUES(1, 2, 0, 'False');
INSERT INTO StructMessage VALUES(0, 'Hello, user!’, '26.05.2013');
INSERT INTO StructMessage VALUES(1, 'Hello, new user!’, '29.05.2013');
INSERT INTO Message VALUES(0, 0, 0, 1, 'Truerue');
INSERT INTO Message VALUES(1, 1, 1, 0, 'T');
INSERT INTO Multimedia VALUES(0, 'http://domen.com.ua/img1.ipg'
Наведемо приклади інформаційно пошукових запитів. Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.
Select unique u1.Name, u1.Family
from Users u0, Users u2, Relation, RelationType
where RelationType.name = 'Друг'
and RelationType.RelationTypePK = Relation.RelationTypeFK
and (Relation.FromFK = u0.UsersPK
and Relation.ToFK = u2.UsersPK or Relation.FromFK = u2.UsersPK
and Relation.ToFK = u0.UsersPK)
and UPPER(u1.FirstName) = 'Maksim'
and UPPER(u1.LastName) = 'Stakhov'
and Relation.ValidEmail = 'True';
Select News.Text
from News, Users
where News.UsersFK = Users.UsersPK
and UPPER(Users.FirstName) = ‘Bogdan’
and UPPER(Users.LastName) = ‘Stakhov’;
Select unique u2.Name, u2.Family, m2.Text, m2.Date_
from Users u1, Users u2, Message m1, Message m2
where m1.ToFK = u1.UsersPK
and UPPER(u1.FirstName) = 'Bogdan'
and UPPER(u1.LastName) = 'Stakhov'
and m1.Read = 'False'
and m2.Read = 'False'
and m2.FromFK = u2.UsersPK;
Select unique Users.FirstName, Users.LastName, Users.Birth
from Users
where Users.Birth between to_date('01.01.1960', 'dd.mm.yyyy')
and to_date('01.01.2000', 'dd.mm.yyyy')
order by Users.LastName;
Select unique Users.FirstName, Users.LastName
from Users, Sity s1, Sity s2, Country
where UPPER(Country.Name) = 'УКРАИНА'
and Country.CountryPK = r1.CountryFK
and Country.CountryPK = r2.CountryFK
and Users.AddressSityFK = t2.SityPK;
Select unique Users.FirstName, Users.LastName
from Users, Sity, Country
where UPPER(Country.Name) = 'Россия'
and Сountry.СountryPK = sity.countryfk
order by Users.LastName;
Select Multimedia.url, Multimedia.name
from Multimedia, MultimediaType
where UPPER(Multimedia.Name) = 'IMAGE'
and MultimediaType.
Multimedia.MultimediaType
and UPPER(MultimediaType.Name) = 'ФОТО';
Проектування баз даних — це складний, багатокроковий процес перетворення інформаційного середовища ПО у інформаційну модель у вигляді бази даних. Цей процес складається з різних етапів, а саме: розробка стратегії автоматизації, аналіз ПО, побудова концептуальної моделі ПО, логічне та фізичне проектування БД. На сучасному етапі розвитку інформатики проектування баз даних перетворилося на цілком сформовану наукову дисципліну, яка має у своєму складі формально-теоретичну та технологічну складові. Теоретичної основою проектування баз даних є теорія нормалізації, яка дозволяє чітко і строго відповісти на таке запитання: як слід проводити перетворення початкової схеми ПО таким чином, щоб результуюча схема бази даних була еквівалентна початковій і була краща за неї. Методологія проектування детально описує усі етапи життєвого циклу створення бази даних з використанням сучасних мов опису ПО.
Ціллю курсової роботи було проектування бази даних соціальної мережі на прикладі соціальної мережі «facebook».
Для виконання курсової роботи були проведені всі необхідні дослідження, що стосуються розробки стратегії автоматизації, в результаті яких була надана відповідь на принципові запитання, що стосуються автоматизації будь-якої предметної області.
Після цього була побудована концептуальна модель. Для цього була використана мова ER-опису ПО, яка базується на концепції, що інформаційна модель будь-якої ПО може бути описана із застосування таких понять, як сутність, атрибут, зв’язок. Крім того, ця мова є суттєво графічною, що дає можливість наочно представляти концептуальну модель ПО. При побудові концептуальної моделі неявно використовувалися результати теорії нормалізації, у зв’язку з цим побудована модель представлена у третій нормальній формі. Необхідності використання більш високих нормальних форм не було, так як у предметній області не були виявлені складні види транзитивних функціональних залежностей, а також багатозначні залежності.
Логічне та фізичне проектування
БД складалося з конвертації концептуальної
моделі ПО у реляційну модель даних.
При цьому був використаний алгоритм
конвертування схеми ПО у мові
ER в схему реляційної бази даних.
Після цього реляційна база даних
була представлена у вигляді команд
створення таблиць бази даних
у мові SQL ORACLE. Крім того, у мові SQL
описані деякі інформаційно-
Виконана курсова робота надала мені можливості ознайомитися з технологією проектування баз даних, та отримати практичний досвід у проектуванні бази даних з конкретної предметної області.
При тестуванні створеної бази даних було виявлено, що вона працює добре і готова для інтеграції в програмний проект соціальної мережі.