Розробка стратегії, аналіз, концептуальне моделювання та проектування бази даних соціальної мережі

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Курсач.docx

— 99.70 Кб (Скачать файл)

);

 

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',

);

4.2.2 SQL- скрипт заповнення початковими даними

 

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',

'123412341232344123412341234123a ',

'29.12.1989', 

'M',

4,

'',

0500890790,

Doomsperio,

'',

1,

0,

3,

'True',

0);

 

 

 

 

 

INSERT INTO Users VALUES(

1,

'Mac7Stakhov@mail.ru',

'Maksim',

'Stakhov',

'1234123412341234123412341234123a',

'18.07.1991', 

'M',

3,

'',

0349872758,

987654321,

'',

'',

3,

1,

'',

'True',

1);

 

INSERT INTO Users VALUES(

2,

'AnatoliyStakhov@mail.ru',

'Anatoliy',

'Stakhov',

'4321423143214321432143214321432a',

'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', 0, 'image', 0);

 

4.2.3. Інформаційно–пошукові запити

Наведемо приклади інформаційно пошукових запитів. Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.

  1. Вивести всіх друзів  користувача Maksim Stakhov

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';

 

  1. Вивести новини, які опублікував Bogdan Stakhov

Select News.Text

from News, Users

where News.UsersFK = Users.UsersPK

and UPPER(Users.FirstName) = ‘Bogdan’

and UPPER(Users.LastName) = ‘Stakhov’;

 

  1. Вибрати та вивести всі непрочитані повідомлення користувача Bogdan 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;

 

  1. Вибрати всіх користувачів, які народилися в період з 01.01.1960 по 01.01.2000 і відсортувати за прізвищем

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;

 

  1. вибрати всіх користувачів, які проживають в Україні

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;

 

 

  1. Вибрати всіх користувачів, які народились в Росії

Select unique Users.FirstName, Users.LastName

from Users, Sity, Country

where UPPER(Country.Name) = 'Россия'

and Сountry.СountryPK = sity.countryfk

order by Users.LastName;

 

  1. Знайти всі фотографії з назвою 'image'

Select Multimedia.url, Multimedia.name

from Multimedia, MultimediaType

where UPPER(Multimedia.Name) = 'IMAGE'

and MultimediaType.MultimediaTypePK =

Multimedia.MultimediaType

and UPPER(MultimediaType.Name) = 'ФОТО';

ВИСНОВКИ

Проектування баз даних  — це складний, багатокроковий процес перетворення інформаційного середовища ПО у інформаційну модель у вигляді  бази даних. Цей процес складається  з різних етапів, а саме: розробка стратегії автоматизації, аналіз ПО, побудова концептуальної моделі ПО, логічне  та фізичне проектування БД. На сучасному  етапі розвитку інформатики проектування баз даних перетворилося на цілком сформовану наукову дисципліну, яка  має у своєму складі формально-теоретичну та технологічну складові. Теоретичної  основою проектування баз даних  є теорія нормалізації, яка дозволяє чітко і строго відповісти на таке запитання: як слід проводити перетворення початкової схеми ПО таким чином, щоб результуюча схема бази даних  була еквівалентна початковій і була краща за неї. Методологія проектування детально описує усі етапи життєвого  циклу створення бази даних з  використанням сучасних мов опису  ПО.

Ціллю курсової роботи було проектування бази даних соціальної мережі на прикладі соціальної мережі «facebook».

Для виконання курсової роботи були проведені всі необхідні  дослідження, що стосуються розробки стратегії  автоматизації, в результаті яких була надана відповідь на принципові запитання, що стосуються автоматизації будь-якої  предметної області.

Після цього була побудована концептуальна модель. Для цього  була використана мова ER-опису ПО, яка базується на концепції, що інформаційна модель будь-якої ПО може бути описана із застосування таких понять, як сутність, атрибут, зв’язок. Крім того, ця мова є суттєво графічною, що дає можливість наочно представляти концептуальну модель ПО. При побудові концептуальної моделі неявно використовувалися результати теорії нормалізації, у зв’язку з цим побудована модель представлена у третій нормальній формі. Необхідності використання більш високих нормальних форм не було, так як у предметній області не були виявлені складні види транзитивних функціональних залежностей, а також багатозначні залежності.

Логічне та фізичне проектування БД складалося з конвертації концептуальної моделі ПО у реляційну модель даних. При цьому був використаний алгоритм конвертування схеми ПО у мові ER в схему реляційної бази даних. Після цього реляційна база даних  була представлена у вигляді команд створення таблиць бази даних  у мові SQL ORACLE. Крім того, у мові SQL описані деякі інформаційно-пошукові запити.

Виконана курсова робота надала мені можливості ознайомитися з технологією проектування баз  даних, та отримати практичний досвід у проектуванні бази даних з конкретної предметної області.

При тестуванні  створеної  бази даних було виявлено, що вона працює добре і готова для інтеграції в програмний проект соціальної мережі.

 


Информация о работе Розробка стратегії, аналіз, концептуальне моделювання та проектування бази даних соціальної мережі