• 沒有找到結果。

Music音樂平台

N/A
N/A
Protected

Academic year: 2021

Share "Music音樂平台"

Copied!
28
0
0

加載中.... (立即查看全文)

全文

(1)

報告題名:Music 音樂平台

Music Platform

作者:黃心怡、王妤瑄、張芷瑄 系級:資訊三乙、資訊三乙、資訊三丙 學號:D0683258、D0683232、D0683467 開課老師:林明言 課程名稱:資料庫系統 開課系所:資訊工程學系 開課學年:108 學年度 第一學期

(2)

中文摘要

Music 音樂平台主要是利用資料庫結合 html、php 語法、MySQL 及 xampp 所 架設的網站,希望使用者能夠藉由我們這個網頁,來找尋所喜歡的歌曲及其相關 資訊,利用此專案所建立之 DBMS 系統(Database Management System,即資料庫 管理系統),讓使用者能夠在音樂平台上利用跟歌曲相關的各種關鍵字(例如:歌 名、歌手及專輯名稱)進行搜索,並透過 php 語法將關鍵字抓進歌曲資料庫跟資 料庫內的 data 進行比對,以此將比對結果呈現在網頁畫面上,像是搜尋歌曲就 能讓使用者輕易找尋到不同歌手翻唱的歌曲版本,而藉由搜尋歌手名稱,則是能 快速找到此歌手的相關歌曲,甚至連歌曲的詳細資料,例如:歌曲長度、曲風、 作詞人及作曲人都能查找到,不只如此,透過查詢專輯名稱,還能直接獲得所有 收錄於該專輯的歌曲清單及其相關資訊。

關鍵字:

資料庫管理系統、網頁設計、音樂平台

(3)

Abstract

The Music music platform is mainly a website built using a database combining html, php syntax, MySQL and xampp. We hope that users can use our webpage to find favorite songs and related information, and use the DBMS(Database Management System) created by this project, which allows users to search for various keywords related to songs (such as song title, artist and album name) on the music platform, and use the php syntax to search for keywords. The song database is compared with the data in the database to compare the results on the web screen. For example, searching for songs can allow users to easily find song versions covered by different singers. The name of the singer can quickly find the relevant song of the singer, and even the detailed information of the song, such as: song length, genre, songwriter and composer can be found, not only that, by querying the album name, you can also get a list of all songs included in the album and related information.

(4)

目 次

 摘要...1  目次...3  第一章 主題...4  第二章 目的...4  第三章 系統使用者...4  第四章 使用者需求功能...4  第五章 (使用者需求功能的)輸入資料、輸出資料(顯示資料)... 5  第六章 ER-diagram... 6  第七章 Database Schema... 7

 第八章 Database Schema Normalization... 8

 第九章 Database Tables... 8 9.1 Table 欄位...6 9.2 各有多少 tuples...13  第十章 資料庫需求... 18 10.1 僅使用到單一表格的查詢...18 10.2 使用到兩個表格的查詢...18 10.3 使用到三個表格的查詢...19 10.4 複合查詢 I...20 10.5 複合查詢 II...20 10.6 增加或刪除資料的操作...21 10.7 變更表格的操作...22  第十一章 實作功能及特色功能... 22 11.1 首頁...22 11.2 註冊頁面...23 11.3 登入頁面...24 11.4 登入後會員所看到的頁面...24 11.5 使用此網站所做的查詢...25  第十二章 心得...26  參考文獻...27

(5)

第一章

主題

一個能夠讓使用者方便尋找歌曲的音樂平台。

第二章

目的

利用此專案所建立之 DBMS 系統,讓使用者能夠在音樂平台上利用歌名 搜索,就能輕易找尋到不同歌手翻唱的版本,而藉由搜尋歌手名稱,則能 快速找到此歌手熱門歌曲,不只如此,透過查詢專輯名稱,還能直接獲得 所有收錄於該專輯的歌曲。

第三章

系統使用者

 使用者(訪客/會員)  平台管理者

第四章

使用者需求功能

使用者(訪客/會員) 平台管理者  註冊  新增歌曲到裝置  查詢歌曲  查看搜尋紀錄  新增剛發行歌曲  刪除違法歌曲  新增/更新會員資料  新增/更新訪客資料  新增訪客/會員搜尋紀錄

(6)

第五章

(使用者需求功能的)輸入資料、輸出資料(顯示資料)

 使用者(訪客/會員) 功能 輸入資料 輸出資料 註冊 輸入申辦會員所需的 資料(姓名/性別/年齡 /住址/電話/生日) 獲得會員使用資格 (提示字) 新增歌曲到裝置 查詢要找的歌曲 將此歌曲輸出到裝置 的歌單 查詢歌曲 輸入欲查詢的關鍵字 (歌名/專輯/歌手) 將最符合的比對結果 顯示於畫面 查看搜尋紀錄 無 顯示已搜尋過紀錄於 畫面  平台管理員 功能 輸入資料 輸出資料 新增剛發行歌曲 輸入欲增加歌曲之詳 細資料(歌名/專輯/歌 手/曲長/曲風/發行時 間/作詞人/作曲人) 發布於平台首頁 刪除違法歌曲 查詢出違法歌曲 於平台首頁將其移除 新增/更新會員資料 輸入會員註冊之基本 資料(姓名/性別/年齡 /住址/電話/生日) 儲存資料至管理者端 新增/更新訪客資料 輸入訪客序號 儲存資料至管理者端 新增訪客/會員搜尋紀 錄 輸入訪客/會員搜尋紀 錄(歌名/專輯/歌手/ 曲長) 儲存資料至管理者端

(7)
(8)
(9)

第八章

Database Schema Normalization

 First Normal Form: 符合 1NF,所有 table 內的 attribute 皆為單一 值,無 composite 及 multivalue 的值

 Second Normal Form: 符合 2NF,所有的 non-prime attribute 皆由 PK 所決定

 Third Normal Form: 符合 3NF,此 database 裡無遞移的決定關係,沒 出現 PK→x, x→non-prime attribute

第九章

Database Tables

9.1 Table 欄位  SINGER 歌手表單 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 能否 NULL 備註(PK/FK) Sin_Name 歌手 varchar 10 是 否 PK English_name 歌手英文名 varchar 15 是 否 PK Birth_date 生日 date 否 是 Age 年齡 int 3 否 是  ALBUM 專輯表單 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 能否 NULL 備註(PK/FK) A_Name 專輯 varchar 10 是 否 PK Sin_name 歌手 varchar 10 是 否 PK,FK(參考 SINGER. Sin_Name) Publish_tim e 發行日期 date 否 是 Publish_com pany 發行公司 varchar 10 否 是 S_Name 歌名 varchar 15 否 是 FK(參考 SONG.S_Name)

(10)

 SONG 歌曲表單 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 能否 NULL 備註(PK/FK) S_Name 歌名 varchar 15 是 否 PK A_Name 專輯 varchar 10 是 否 PK,FK(參考 ALBUM.A_Name) Sin_Name 歌手 varchar 10 否 是 FK(參考 SINGER.Sin_Name) Length 歌曲長度 time 否 是 Style 風格類型 varchar 5 否 是 Lyricist 作詞者 varchar 10 否 是 Composer 作曲者 varchar 10 否 是 SA_Name 系統管理 員_名稱 varchar 10 否 是 FK(參考 SYSTEM_ ADMINISTRATOR. SA_Name)  SYSTEM_ADMINISTRATOR 系統管理員 欄位名稱 中文名稱 欄位型態 長度 是否唯 一 能否 NULL 備註 (PK/FK) SA_Name 名稱 varchar 10 是 否 PK Gender 性別 boolean 否 是 Age 年齡 int 3 否 是 Address 地址 varchar 30 否 是 Phone_number 電話號碼 int 10 否 是 Birth_date 生日 date 否 是  DEVICE 裝置 欄位名稱 中文名稱 欄位型態 長度 是否唯一 能否 NULL 備註 (PK/FK) D_Name 裝置名稱 varchar 10 是 否 PK Model 裝置型號 varchar 10 是 否 PK

(11)

 RECORD 搜尋紀錄 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 能否 NULL 備註(PK/FK) S_Name 歌名 varchar 15 是 否 PK,FK(參考 SONG.S_Name) A_Name 專輯名稱 varchar 10 是 否 PK,FK(參考 ANBUM.A_Name) Sin_Name 歌手 varchar 10 否 是 FK(參考 SINGER.Sin_Name) Length 長度 time 否 是 FK(參考 SONG.Length) G_Num 訪客編號 int 3 否 是 FK(參考 GUEST.G_Number)  GUEST 訪客 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 能否 NULL 備註(PK/FK) G_Number 訪客編號 int 3 是 否 PK  MEMBER 會員 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 能否 NULL 備註(PK/FK) Account 帳號 varchar 10 是 否 PK Password 密碼 varchar 10 否 是 Birth_date 生日 date 否 是 Name 名稱 varchar 10 否 是 Gender 性別 boolean 否 是 Age 年齡 int 3 否 是 Phone_number 電話號碼 int 10 否 是 Email 信箱 varchar 40 是 否 PK G_Num 訪客編號 int 3 否 是 FK(參考 GUEST.G_Number)

(12)

 M_UPDATE 會員更新 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 是否 NULL 備註(PK/FK) Account 帳號 varchar 10 是 否 PK、FK(參考 MEMBER.Account) SA_Name 系統管理 員名稱 varchar 10 是 否 PK、FK(參考 SYSTEM_ ADMINISTRATOR.N ame)  G_UPDATE 訪客更新 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 是否 NULL 備註(PK/FK) G_Num 訪客編號 int 3 是 否 PK、FK(參考 GUEST.G_Number) SA_Name 系統管理 員名稱 varchar 10 是 否 PK、FK(參考 SYSTEM_ ADMINISTRATOR.N ame)  R_ADD 新增搜尋紀錄 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 是否 NULL 備註(PK/FK) SA_Name 系統管理 員名稱 varchar 10 是 否 PK、FK(參考 SYSTEM_ ADMINISTRATOR.N ame) S_Name 歌名搜尋 紀錄 varchar 15 是 否 PK、FK(參考 RECORD.S_Name)

(13)

 S_ADD 新增歌曲 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 是否 NULL 備註(PK/FK) SA_Name 系統管理 員名稱 varchar 10 是 否 PK、FK(參考 SYSTEM_ ADMINISTRATOR. Name) S_Name 歌名 varchar 15 是 否 PK、FK(參考 SONG.S_Name)  SEARCH 搜尋歌曲 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 是否 NULL 備註(PK/FK) S_Name 歌名 varchar 15 是 否 PK、FK(參考 SONG.S_Name) G_Num 訪客編號 int 3 是 否 PK、FK(參考 GUEST.G_Number)  DOWNLOAD 下載歌曲 欄位名稱 中文名稱 欄位型態 長度 是否 唯一 是否 NULL 備註(PK/FK) S_Name 歌名 varchar 15 是 否 PK、FK(參考 SONG.S_Name) D_Name 裝置名稱 varchar 10 是 否 PK、FK(參考 DEVICE.D_Name)

(14)

9.2 各有多少 tuples  SINGER 歌手表單 4 tuples  ALBUM 專輯表單 3 tuples  SONG 歌曲表單 19 tuples

(15)

 SYSTEM_ADMINISTRATOR 系統管理員 3 tuples  DEVICE 裝置 3 tuples  RECORD 搜尋紀錄 7 tuples

(16)

 GUEST 訪客 10 tuples  MEMBER 會員 6 tuples  M_UPDATE 會員更新 6 tuples

(17)

 G_UPDATE 訪客更新 6 tuples  R_ADD 新增搜尋紀錄 7 tuples  S_ADD 新增歌曲 10 tuples

(18)

 SEARCH 搜尋歌曲

8 tuples

 DOWNLOAD 下載歌曲

(19)

第十章

資料庫需求

10.1 僅使用到單一表格的查詢

10.1.1 列出歌曲”天黑請閉眼”的作詞者及作曲者

SELECT Lyricist, Composer

FROM SONG

WHERE S_Name=”天黑請閉眼”;

10.1.2 列出年齡為 20 歲的會員的帳號及密碼

SELECT Account, Password

FROM MEMBER WHERE Age=20; 10.1.3 列出專輯名為自傳的歌曲名 SELECT S_Name FROM SONG WHERE A_Name=’自傳’; 10.2 使用到兩個表格的查詢 10.2.1 列出訪客編號為 5 號的歌名搜尋紀錄 SELECT R_Name

FROM RECORD, GUEST

WHERE G_Num=G_Number AND G_Num=5;

10.2.2 列出 iPhone 7 所下載的歌曲名稱

SELECT S_Name

FROM DEVICE AS DEV, DOWNLOAD AS D

(20)

10.2.3 列出歌手英文名為 Mayday 的專輯名稱 SELECT A_Name

FROM ALBUM AS A, SINGER AS S

WHERE A.Sin_Name=S.Sin_Name AND English_name=’Mayday’;

10.3 使用到三個表格的查詢

10.3.1 列出裝置型號為 iPhone 7 中的下載歌曲為歌手梁靜茹的歌曲名稱

SELECT S_Name

FROM DEVICE AS DEV, DOWNLOAD AS D, SONG AS S

WHERE DEV.D_Name=D.D_Name AND D.S_Name=S.S_Name AND

Model=’iPhone 7’ AND Sin_Name=’梁靜茹’;

10.3.2 列出系統管理員 Tracy 所更新的會員資料的會員 Email

SELECT Email

FROM SYSTEM_ADMINSTRATOR AS SA, MEMBER AS M,

M_UPDATE AS MU

WHERE MU.Account=M.Account AND MU.SA_Name=SA.SA_Name AND

SA.SA_Name=’Tracy’;

10.3.3 列出系統管理員 Shelley 所新增的搜尋紀錄為阿信作詞的歌曲名稱 SELECT S_Name

FROM SONG AS S, SYSTEM_ADMINSTRATOR AS SA,

R_ADD AS RA

WHERE RA.SA_Name=SA.SA_Name AND RA.S_Name=S.S_Name

(21)

10.4 複合查詢-I

10.4.1 列出沒人下載的歌曲名稱 SELECT S.S_Name

FROM SONG AS S

WHERE S.S_Name NOT EXISTS(SELECT D.S_Name

FROM DOWNLOAD AS D

WHERE D.S_Name=S.S_Name);

10.4.2 列出發行日期在 2019 年的專輯

SELECT *

FROM ALBUM AS A

WHERE A.Publish_time LIKE ’2019-%-%’;

10.4.3 列出沒有專輯名稱的歌曲名稱

SELECT S.S_Name

FROM SONG AS S

WHERE S.A_Name IS NULL;

10.5 複合查詢-II

10.5.1 列出專輯為自傳的總歌曲數

SELECT COUNT

FROM ALBUM

(22)

10.5.2 列出歌手為梁靜茹的歌曲名稱(依 A-Z 排序)

SELECT S_Name

FROM SONG

WHERE Sin_Name=’梁靜茹’

ORDER BY S_Name ASC;

10.5.3 對於每一個專輯,列出專輯名稱及歌曲長度最長的歌曲名稱

SELECT A_Name, S_Name

FROM ALBUM AS A, SONG AS S

WHERE A.A_Name=S.A_Name AND Length=MAX(Length)

GROUP BY A_Name;

10.6 增加或刪除資料的操作

10.6.1 增加訪客編號 10 搜尋天黑請閉眼的搜尋紀錄

INSERT INTO RECORD VALUES(’天黑請閉眼’,’無’,’陳零九&

邱鋒澤’,’00:05:02’,10);

10.6.2 刪除歌名為任意門的歌曲

DELETE FROM SONG

WHERE S_Name=’任意門’;

10.6.3 刪除名稱為 CCSHEN,型號為 OPPO R9s 的裝置 DELETE FROM DEVICE

(23)

10.7 變更表格的操作 10.7.1 把系統管理員的年齡全部加 10 歲 UPDATE SYSTEM_ADMINSTRATOR SET Age=Age+10 10.7.2 把歌手五月天的名稱改為五月花衛生紙 UPDATE SINGER SET S_Name=’五月花衛生紙’ WHERE S_Name=’五月天’; 10.7.3 把住址有西屯區的系統管理員名稱改為 Becky UPDATE SYSTEM_ADMINSTRATOR SET SA_Name=’Becky’

WHERE Address LIKE ’%西屯區%’;

第十一章 實作功能及特色功能

11.1 首頁

使用者未登入會員時所看到的首頁如下,有列出推薦歌曲及歌手照片和專輯 的封面,使用者能透過點擊註冊或登入進行使用。

(24)

11.2 註冊頁面

使用者如果還未有帳號可以透過點擊首頁的註冊按鈕進行註冊,點擊左上方 的 MUSIC MUSIC 可回到首頁。

(25)

11.3 登入頁面 使用者如已有註冊過帳號,即可直接點擊首頁的登入按鈕進行登入,點擊左 上方的 MUSIC MUSIC 可回到首頁。 11.4 登入後會員所看到的首頁 登入會員後顯示的畫面如下,上方會出現 xxx,你好,xxx 為你設定的名稱, 而右上方會有個人資料、歷史紀錄查詢的按鈕可供點擊檢視,最右邊會有登 出鍵可供登出。

(26)

11.5 使用此網頁所做的搜尋

使用者可透過關鍵字的查詢找到自己想要的歌曲或歌手或專輯,點擊左上方 的 MUSIC MUSIC 可回到首頁。

//把查詢指令存在$sql 裡,查詢指令用來搜尋關鍵字歌手名/ 歌曲名/專輯名

$sql = "SELECT * FROM `song` WHERE S_Name LIKE '%$data%' or Sin_Name LIKE '%$data%'or A_Name LIKE '%$data%';";

(27)

第十二章 心得

70 黃心怡: 透過這學期的課程及這個專題的製作,讓我更清楚的了解到資料庫在軟 體開發過程中的重要性,期末的專題希望是能夠架一個網站,不過在這 之前我對架網站一點基礎也沒有,也是透過組員間的互相幫助與努力我 們才慢慢地有雛形,雖然我們的網站沒有用的很完整,不過我也在這過 程中得到一些收穫,在每次討論的時候都是非常愉快的,謝謝我的組員 們這學期的幫助。 69 王妤瑄: 因為之前沒學過網頁,所以在做第十個功課的時候不知道從哪裡開始 學,但是多虧組員分享的資訊,後來有漸漸上手了,之後真正開始做第 十個功課的時候,雖然我們都不太會,也花了很多時間在討論,但是最 後我們有做出一個成果,也是很棒了。 75 張芷瑄: 這學期上資料庫,感覺比其他課來的認真,因為在暑假剛好有去上學校 資訊處辦的活動課程,跟資料庫是相關的,所以這節課比較聽得懂,也 因為老師人很好,所以下課有什麼不會都敢直接去問他,不管再怎麼簡 單的問題也都很有耐心的解釋給我們聽,在專題階段作業中,也難得跟 組員這麼積極的討論,雖然常常都要在沒有課的早上提早起床,真的很 痛苦,不過看著專題一步一步生出來也挺欣慰的,但在最一開始的時候, 光是要安裝 mysql 跟 xampp 就搞了很久,時不時連不上,重開機又壞掉, 還會做到一半網路整個連不上,心很累,感覺就是買到機王,再加上我 們這組剛好都不太會弄網頁架後端,所以最後要做出三層架構真的好麻 煩,常常卡在一個小地方要弄整天,不過回過頭來看,這節課還是學到 蠻多的,至少挑好組員很重要!而且以後感覺不管什麼領域也都會用到資 料庫,老師很棒~

(28)

參考文獻

1. 網頁模板。上網日期:2019.12.13,檢自:

https://github.com/BlackrockDigital/startbootstrap-creative/archiv e/gh-pages.zip

參考文獻

相關文件

Remote root compromise Web server defacement Guessing/cracking passwords Copying databases containing credit card numbers Viewing sensitive data without authorization Running a

(2) We emphasized that our method uses compressed video data to train and detect human behavior, while the proposed method of [19] Alireza Fathi and Greg Mori can only

The exploration of the research can be taken as a reference that how to dispose the resource when small and medium enterprise implement management information system.. The

This study will use BIM, Web-base, RFID, Wireless Network, ER Model, Database and Information Technology environment to develop “Electronic Building Construction

This thesis makes use of analog-to-digital converter and FPGA to carry out the IF signal capture system that can be applied to a Digital Video Broadcasting - Terrestrial (DVB-T)

Displays a list of contacts and allows users to select a contact from that list. // The application only shows the phone, email, and birthdate information of the selected

In this study, we model the models of different permeable spur dikes which included, and use the ANSYS CFX to simulate flow field near spur dikes in river.. This software can

As the number of Internet users rapidly grows, it has become increasingly important that online auction need to provide rich and diverse information and service for