KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx

上传人:b****8 文档编号:10242755 上传时间:2023-02-09 格式:DOCX 页数:21 大小:51.34KB
下载 相关 举报
KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx_第1页
第1页 / 共21页
KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx_第2页
第2页 / 共21页
KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx_第3页
第3页 / 共21页
KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx_第4页
第4页 / 共21页
KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx

《KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx》由会员分享,可在线阅读,更多相关《KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx(21页珍藏版)》请在冰豆网上搜索。

KTV自主选歌系统数据库期末大作业看看你就知道对你多有用.docx

KTV自主选歌系统数据库期末大作业看看你就知道对你多有用

sql大作业2011-2012学年度

KTV自主选歌系统

数据库设计说明书

2011/12/20

基于SQL2008数据库设计软件,设计的一款方便大家K歌的小型数据库服务系统系统简介。

KTV自主选歌系统数据库说明书

KTV自主选歌系统数据库说明书2

1引言2

1.1设计目的2

1.2定义2

2需求分析3

2.1功能分析3

2.2数据字典3

2.3数据流图5

3结构设计5

3.1概念结构设计5

3.2逻辑结构设计7

3.3物理结构设计7

3.授予权限12

1引言

2011-2012学年第一学期SQL大作业,欢迎检查指导!

1.1设计目的

本系统主要用于KTV自助选歌,现在社会年轻人娱乐休闲方式很多,其中去KTVhigh一下是必备项目。

本数据库包括歌曲信息,歌手信息,歌曲所属专辑信息等,方便顾客根据歌曲名、歌曲类型等选择自己喜欢的歌曲,满足顾客需求。

1.2定义

1.系统名称:

KTV自主选歌系统

2.数据库设计人员:

2需求分析

2.1功能分析

1.歌手信息的管理:

可以查询、增加、删除、修改管理

2.歌曲信息的管理:

可以查询、增加、删除、修改管理

3.乐队信息管理:

可以查询、增加、删除、修改管理

4.专辑信息的管理:

可以查询、增加、删除、修改管理

5.曲目类型的管理:

可以查询、增加、删除、修改管理

6.预选歌曲表的管理:

根据用户的自己的需求,选择歌曲曲目

2.2数据字典

1.数据项

数据项

含义说明

类型

长度

歌手名字

指定歌手姓名

Char

10

所属公司

指定歌手所属公司名称

Char

40

性别

指定歌手性别

Char

2

来自地区

说明歌手所属范围

Char

10

乐队编号

唯一标识一个乐队

乐队名称

说明乐队包含歌手名称

Char

20

曲风编号

唯一标识一种曲风类型

曲风类型

描述歌曲类型

Char

30

曲风区域

描述歌曲风土人情背景

Char

8

歌曲名称

指定歌曲名称

Char

10

乐队来自地区

说明乐队来自地区

Char

10

专辑编号

唯一标识一张专辑

Char

4

专辑名称

说明专辑名称

Char

10

歌曲编号

标识歌曲信息

Char

4

歌手编号

标识歌手信息

Char

4

专辑编号

标识专辑信息

Char

4

2.数据结构

编号

数据结构名

属性

1

歌手

歌手编号,歌手名字,性别,所属公司,来自地区,乐队编号

2

曲目

歌曲编号,歌曲名称,曲风类型,专辑编号

3

专辑

专辑编号,专辑名称,歌曲编号,歌手编号

4

乐队信息

乐队名称,乐队编号,来自地区

5

曲风

曲风类型,歌曲编号

6

歌曲信息

歌曲编号,歌手编号

7

专辑信息

专辑编号,歌手编号

8

预选歌曲

歌曲名称,歌手名字

3.数据流

编号

数据流名

输入

输出

1

变更歌曲

变更信息

歌曲信息

2

查询歌曲

歌曲编号

歌曲信息

3

变更歌手

变更信息

歌手信息

4

查询歌手

歌手编号

歌手信息

5

变更乐队

变更信息

乐队信息

6

查询乐队

乐队编号

乐队信息

7

查询专辑

专辑编号

专辑信息

8

变更专辑

变更信息

专辑信息

9

变更曲风

变更信息

曲风信息

10

查询曲风

曲风类型

曲风信息

11

提交选歌信息

歌曲编号,歌手编号,乐队编号,专辑编号

预选歌曲信息

12

查询已选歌曲

歌曲编号,歌手编号

歌曲信息

4.数据存储

数据存储名

输入数据流

输出数据流

说明部分

歌曲信息

变更歌曲

查询歌曲,提交选歌信息

歌手信息

变更歌手

查询歌手,提交选歌信息

专辑信息

变更专辑,变更歌曲,变更歌手

查询专辑

乐队信息

变更乐队

查询乐队

选歌信息

提交选歌信息

查询已选歌曲

1.处理过程

处理过程名

输入数据流

输出数据流

说明部分

整理分析数据

终端

歌曲信息,歌手信息,专辑信息,乐队信息

根据互联网的信息定时更新数据库

操作数据

终端

变更歌曲,变更歌手,变更专辑,变更乐队

将得到的数据向数据库增加,更改

选歌

提交选歌信息

2.3数据流图

3结构设计

3.1概念结构设计

3.3.1局部E-R图

 

所属歌手

专辑名字

专辑编号

类型编号

曲风区域

类型说明

语言类型

 

3.3.2全局关系图

NM

1NN

N

N

N1

NN

1111

1

3.3.3全局E-R图

歌手信息

歌曲信息

演唱

拥有

专辑编号

所属公司

歌手编号

来自地区

曲风编号

歌曲名称

歌曲编号

歌手编号

包含

性别

歌曲编号

专辑编号

 

MN

NN

N1N

专辑信息

乐队信息

曲风类型

属于

曲风区域

乐队名称

歌手编号

专辑名称

属于

属于

属于

来自地区

乐队编号

曲风编号

曲风描述

N1

NN

1

111

1

 

3.2逻辑结构设计

3.2.1基本表

歌手(歌手编号,歌手名字,所属公司,性别,来自地区,乐队编号)

曲目(歌曲编号,歌曲名称,曲风编号,专辑编号,乐队编号)

专辑(专辑编号,专辑名称,歌手编号,曲风编号,乐队编号)

乐队信息(乐队编号,乐队名称,来自地区)

曲风(曲风编号,曲风描述,曲风区域,语言类型)

歌曲信息(歌曲编号,歌手编号)

预选歌曲(歌曲名称,歌手名字)

3.3物理结构设计

3.3.1创建数据库代码

CREATEDATABASEKTV自主选歌系统

on

(name='KTV自主选歌系统_data',

filename='e:

\sql\KTV自主选歌系统_data.mdf',

size=10,

maxsize=50,

filegrowth=5mb

Logon

(name='KTV自主选歌系统_log',

filename='e:

\sql\KTV自主选歌系统_log.ldf',

size=5mb,

maxsize=25mb,

filegrowth=5mb

go

3.3.2创建表代码

CREATETABLE歌手信息表

(歌手编号char(4),

歌手名字CHAR(10),

所属公司CHAR(40),

性别CHAR

(2)CHECK(性别IN('男','女'))NOTNULL,

来自地区CHAR(10),

乐队编号CHAR(4),

PRIMARYKEY(歌手编号),

FOREIGNKEY(乐队编号)REFERENCES乐队信息表(乐队编号))

CREATETABLE曲风表

曲风编号CHAR(4)PRIMARYKEY,

曲风类型CHAR(30),

曲风区域CHAR(8))

CREATETABLE预选歌曲表

(歌曲名称CHAR(10),

歌手名字CHAR(10))

CREATETABLE乐队信息表

乐队编号CHAR(4)PRIMARYKEY,

乐队名称CHAR(20),

来自地区CHAR(10),

歌手编号CHAR(10))

CREATETABLE专辑信息表

(专辑编号CHAR(4),

专辑名称CHAR(30),

曲风类型CHAR(10),

乐队编号CHAR(40),

歌手编号CHAR(10)

PRIMARYKEY(专辑编号))

CREATETABLE曲目表

(歌曲编号CHAR(4)PRIMARYKEY,

歌曲名称CHAR(10),

曲风编号CHAR(10),

专辑编号CHAR(30),

乐队编号CHAR(30))

CREATETABLE歌曲信息表

(歌曲编号CHAR(4),

歌手编号CHAR(10),

PRIMARYKEY(歌曲编号,歌手编号))

3.3.3表截图

3.3.4创建视图,存储过程,默认,权限,约束,触发器代码及视图

1.创建约束代码

ALTERTABLE曲目表

ADDCONSTRAINTFK_QM

FOREIGNKEY(曲风编号)REFERENCES曲风表(曲风编号)

ALTERTABLE曲目表

ADDCONSTRAINTFK2_QM

FOREIGNKEY(专辑编号)REFERENCES专辑信息表(专辑编号)

ALTERTABLE歌曲信息表

ADDCONSTRAINTFK_XX

FOREIGNKEY(歌曲编号)REFERENCES曲目表(歌曲编号)

ALTERTABLE曲风表

ADDCONSTRAINTaaDEFAULT'个性'for曲风编号

ALTERTABLE专辑信息表

ADDCONSTRAINTFK_ZJ

FOREIGNKEY(歌手编号)REFERENCES歌手信息表(歌手编号)

ALTERTABLE歌曲信息表

ADDCONSTRAINTFK2_XX

FOREIGNKEY(歌手编号)REFERENCES歌手信息表(歌手编号)

2.触发器

CREATETRIGGERTR1_ADD

ON歌手表

FORINSERT

AS

IFEXISTS

(SELECT*FROMINSERTEDWHERE性别NOTIN('男','女'))

BEGIN

RAISERROR('输入值为男或女',16,1)

ROLLBACKTRANSACTION

END

CREATETRIGGERUP_tri

ON曲目表

FORUPDATE

AS

DECLARE@OLDNVARCHAR(255)

DECLARE@NEWNVARCHAR(255)

SELECT@OLD=专辑编号FROMDELETED

SELECT@NEW=专辑编号FROMINSERTED

UPDATE专辑表SET专辑编号=@newwhere专辑编号=@old

begin

raiserror(‘需要级联更新专辑表中的专辑编号')

rollbacktransaction

end

改的:

CREATETRIGGERTR1_ADD

ON歌手信息表

FORINSERT

AS

IFEXISTS

(SELECT*FROMINSERTEDWHERE性别NOTIN('男','女'))

BEGIN

RAISERROR('输入值为男或女',16,1)

ROLLBACKTRANSACTION

END

CREATETRIGGERUP_tri

ON曲目表

FORUPDATE

AS

DECLARE@OLDNVARCHAR(255)

DECLARE@NEWNVARCHAR(255)

SELECT@OLD=专辑编号FROMDELETED

SELECT@NEW=专辑编号FROMINSERTED

UPDATE专辑表SET专辑编号=@newwhere专辑编号=@old

begin

rollbacktransaction

end

3.授予权限

USEKTV自主选歌系统

go

grantselect,update,delete

on预选歌曲表

topublic

DENYINSERT,delete

ON曲目表

TOpublic

grantselect

on歌手表

topublic

go

denydelete,update

on歌手表

topublic

DENYINSERT,delete

ON专辑表

TOpublic

DENYINSERT,delete

ON乐队信息表

TOpublic

(grantselect,delete,update

on歌手表

todb_owner

go)(消息4617,级别16,状态1,第1行

无法对特殊角色授予、拒绝或撤消权限。

改过的:

USEKTV自主选歌系统

go

grantselect,update,delete

on预选歌曲表

topublic

DENYINSERT,delete

ON曲目表

TOpublic

grantselect

on歌手信息表

topublic

go

denydelete,update

on歌手信息表

topublic

DENYINSERT,delete

ON专辑信息表

TOpublic

DENYINSERT,delete

ON乐队信息表

TOpublic

4.存储过程

ifexists(selectnamefromsysobjectswherename='歌手选歌'andtype='P')

Dropprocedure歌手选歌

go

createprocedure歌手选歌

@歌手名称varchar(10)

as

select歌手表.歌手编号,歌手名字,歌曲名称

from歌手表,歌曲信息表,曲目表

where歌手表.歌手编号=歌曲信息表.歌手编号and歌曲信息表.歌曲编号=曲目表.歌曲编号

and歌手名字=@歌手名称

exec歌手选歌'阿桑'

改过的:

ifexists(selectnamefromsysobjectswherename='歌手选歌'andtype='P')

Dropprocedure歌手选歌

go

createprocedure歌手选歌

@歌手名字varchar(10)

as

select歌手信息表.歌手编号,歌手信息表.歌手名字,曲目表.歌曲名称

from歌手信息表,歌曲信息表,曲目表

where歌手信息表.歌手编号=歌曲信息表.歌手编号and歌曲信息表.歌曲编号=曲目表.歌曲编号

and歌手名字=@歌手名字

exec歌手选歌'阿桑'

ifexists(selectnamefromsysobjectswherename='歌曲选歌'andtype='P')

Dropprocedure歌曲选歌

go

createprocedure歌曲选歌

@歌曲名称varchar(10)

as

select曲目表.歌曲编号,歌手名字,歌曲名称

from歌手表,歌曲信息表,曲目表

where歌手表.歌手编号=歌曲信息表.歌手编号and歌曲信息表.歌曲编号=曲目表.歌曲编号

and歌曲名称=@歌曲名称

exec歌手选歌'阿桑'

ifexists(selectnamefromsysobjectswherename='乐队选歌'andtype='P')

Dropprocedure乐队选歌

go

createprocedure乐队选歌

@乐队名称varchar(10)

as

select歌曲编号,歌曲名称,乐队名称

from曲目表,乐队信息表

where乐队信息表.乐队编号=曲目表.乐队编号and乐队名称=@乐队名称

exec乐队选歌'SHE'

ifexists(selectnamefromsysobjectswherename='曲风类型选歌'andtype='P')

Dropprocedure曲风类型选歌

go

createprocedure曲风类型选歌

@曲风类型char(30)

as

select曲目表.歌曲编号,歌手名字,歌曲名称,曲风类型,曲风区域

from歌手表,歌曲信息表,曲目表,曲风表

where歌手表.歌手编号=歌曲信息表.歌手编号and歌曲信息表.歌曲编号=曲目表.歌曲编号and曲目表.曲风编号=曲风表.曲风编号

and曲风类型=@曲风类型

exec曲风类型选歌'欢快'

5.视图的创建

createview全部歌曲浏览

as

select曲目表.歌曲编号,歌曲名称,歌手名字

from歌曲信息表,歌手表,曲目表

where歌曲信息表.歌曲编号=曲目表.歌曲编号and歌手表.歌手编号=歌曲信息表.歌手编号

select*from全部歌曲浏览

createview专辑浏览

as

select专辑名称,歌曲名称,歌手名字

from专辑表,曲目表,歌手表,歌曲信息表

where专辑表.专辑编号=曲目表.专辑编号and歌曲信息表.歌曲编号=曲目表.歌曲编号

and歌曲信息表.歌手编号=歌手表.歌手编号

改过的:

createview全部歌曲浏览

as

select曲目表.歌曲编号,歌曲名称,歌手名字

from歌曲信息表,歌手信息表,曲目表

where歌曲信息表.歌曲编号=曲目表.歌曲编号and歌手信息表.歌手编号=歌曲信息表.歌手编号

select*from全部歌曲浏览

createview专辑浏览

as

select专辑信息表.专辑名称,歌曲名称,歌手名字

from专辑信息表,曲目表,歌手信息表,歌曲信息表

where专辑信息表.专辑编号=曲目表.专辑编号and歌曲信息表.歌曲编号=曲目表.歌曲编号

and歌曲信息表.歌手编号=歌手信息表.歌手编号

createview专辑浏览

as

select专辑名称,歌曲名称,乐队名称

from专辑表,曲目表,乐队信息表

where专辑表.专辑编号=曲目表.专辑编号and曲目表.乐队编号=乐队信息表.乐队编号

改过的:

createview专辑浏览

as

select专辑名称,歌曲名称,乐队名称

from专辑信息表,曲目表,乐队信息表

where专辑信息表.专辑编号=曲目表.专辑编号and曲目表.乐队编号=乐队信息表.乐队编号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1