ції на ЕОМ. За допомогою однієї таблиці зручно описувати найпростіший вид зв'язків між даними, а саме поділ одного об'єкта, інформація про який зберігатися в таблиці, на безліч підоб'єктів, кожному з яких відповідає рядок або запис таблиці. Фізичне розміщення даних в реляційних базах на зовнішніх носіях легко здійснюється за допомогою звичайних файлів. Проблеми ж ефективності обробки даних цього типу виявилися технічно цілком розв'язуються.
Основними недоліками реляційної моделі є наступні: відсутність стандартних засобів ідентифікації окремих записів і складність опису ієрархічних і мережевих зв'язків.
Реалізована база даних включає п'ять таблиць, проектування яких грунтується на отриманих сутності:
Сутність «Користувач» представлена ??у вигляді таблиці «Users» (див. рис.).
Подання сутності «Користувач» у вигляді таблиці «Users»
У даній таблиці поле «Id_User» ключове типу лічильник, поле «Name_User» містить логін користувача і має тип даних текстовий (255). Поле «Password_User» містить пароль користувача і має тип текстовий (255).
Сутність «Плейлист» представлена ??у вигляді таблиці «Playlists» (див. рис.).
Подання сутності «Плейлист» у вигляді таблиці «Playlists»
У таблиці «Playlists» поле «Id_Playlist» ключове типу лічильник, поле «Id_User» служить для зв'язку з таблицею «Users», має тип числовий, поле «Name_Playlist» містить назву плейлиста і має тип текстовий ( 255).
Сутність «Пісня» представлена ??у вигляді таблиці «Songs» (див. рис.).
Подання сутності «Пісня» у вигляді таблиці «Songs»
У таблиці «Songs» поле «Id_Song» є ключовим типу лічильник, поле «Title_Song» містить назву пісні і має тип текстовий (30), поле «Artist_Song» містить виконавця і має тип текстовий (30) , поле «Album_Song» містить назву альбому пісні і має тип текстовий (30), поле «Year_Song» містить інформацію про рік пісні (альбому) і має тип числовий, поле «Id_Genre» позначає жанр пісні і служить полем для зв'язку з таблицею «Genres », тип числовий, поле« Comment_Song »містить коментар до пісні і має тип текстовий (30), поле« Track_Song »містить номер треку і має тип числовий, поле« Path_Song »містить повний шлях до пісні і має тип текстовий (255).
Сутність «ПесняПлейліст» представлена ??у вигляді таблиці «SongPlaylist» (див. рис.).
Подання сутності «ПесняПлейліст» у вигляді таблиці «SongPlaylist»
У таблиці «SongPlaylist» поле «Id_Song» позначає номер пісні і служить полем для зв'язку з таблицею «Songs», поле «Id_Playlist» позначає номер плейлиста і служить полем для зв'язку з таблицею «Playlists», поле «PlayTimes» містить число прослуховувань пісні і має тип числовий, поле «Rating» містить рейтинг пісні і має тип текстовий (5).
Сутність «Жанр» представлена ??у вигляді таблиці «Genres» (див. рис.).
Подання сутності «Жанр» у вигляді таблиці «Genres»
У таблиці «Genres» поле Id_Genre є ключовим типу лічильник, поле «Text_Genre» містить назву жанру.
Загальна схема відносин для логічного рівня проектування БД (див. рис.) може виглядає наступним чином:
Логічна модель проекту БД «MP3_Catalogizator»
4.9 Мережеві компоненти
У програмі для передачі даних по мережі був використаний компонент System. Net. Sockets. Клас Socket забезпечує широкий набір методів і властивостей для мережевих взаємодій, і може бути використаний для створення додатків клієнта і сервера.
Принцип формування з'єднання полягає в наступному. Сервер встановлює порт з яким додаток буде працювати, і починає його «слухати»:
serverSocket As New TcpListener (8888). Start ()
Програма-клієнт ініціює з'єднання відправляючи запит на підключення сервера:
Dim clientSocket As New System. Net. Sockets. TcpClient (). Connect (ip_server, 8888)
Отримуючи такий запит сервер створює з'єднання:
clientSocket=serverSocket. AcceptTcpClient ()
Після цього клієнт і сервер можуть обмінюватися даними.
Отправеніе даних:
Dim serverStream As NetworkStream=clientSocket. GetStream () outStream As Byte ()=serverStream. Write (outStream, 0, outStream. Length). Flush ()
Отримання даних:
Dim networkStream As NetworkStream...