数据库原理与应用实验一(以stuManage2为例)

1、数据库创建与管理

(1)请根据下面描述,使用SQL语句完成数据库的创建

名称:stuDatabase
主数据文件:
逻辑文件名: Data_M
物理文件名:stuDatabase__M.mdf
初始大小:8M 递增:10% 限制文件增长:500M
次数据文件:
逻辑文件名:Data_ N1
物理文件名:stuDatabase__N1.ndf
初始大小:8M 递增:1M 限制文件增长:不限
日志文件:
逻辑文件名:Log_1
物理文件名:stuDatabase__L1.ldf
其他信息:默认
注:物理文件的路径请设置为D盘的myData文件夹。

create database stuDatabase
on primary
	(
	name =Data_M,
	filename='D:\myData\stuDatabase__M.mdf',
	size = 8M,
	filegrowth=10%,
	maxsize=500M
	),
	filegroup yourname
	(
	name =Data_ N1,
	filename='D:\myData\stuDatabase__N1.ndf',
	size = 8M,
	filegrowth=1M,
	maxsize=unlimited
	)
	log on
	(
	name =Log_1,
	filename='D:\myData\stuDatabase__L1.ldf'
	)

(2)为该数据库添加一个数据文件:
逻辑文件名:Data_N2
物理文件名:c:\Data\stuDatabase__N2.ndf
初始大小:6M 递增:1M 限制文件增长:不限
文件组:FG1
注意:未定信息自拟。实现该要求的所有操作都要求使用SQL语句实现,并记录下来。

alter database stuDatabase
add filegroup FGI
alter database stuDatabase
add file
(
	name=Data_N2,
	filename='c:\Data\stuDatabase__N2.ndf',
	size=6M,
	filegrowth=1M,
	maxsize=unlimited
)
to filegroup FGI

2、表的创建

(1)在stuDatabas数据库中创建下面的表
数据库原理与应用实验一(以stuManage2为例)_第1张图片
数据库原理与应用实验一(以stuManage2为例)_第2张图片
数据库原理与应用实验一(以stuManage2为例)_第3张图片

create table department
(
	dNo char(6) constraint yourname primary key,
	dName nvarchar(20) constraint yourname not null,
	dTel varchar(11) check (dTel like '020%')
)
create table major
(
	mNo char(6) ,
	mName nvarchar(40) not null,
	mFirSubject nvarchar(40) not null,
	mSecSubject nvarchar(40) ,
	dNo char(6) ,
	constraint yourname1 primary key(mNO),
	constraint yourname2 foreign key(dno) references department(dNo)
)
create table teacher
(
	tNo char(6) primary key,
	tname nvarchar(20) not null,
	tSex char(4) check (tSex in ('男','女')),
	tBirth smalldatetime,
	tRank nvarchar(20),
	dNo char(6) foreign key references department(dNo)
)

(2)为teacher表添加一个字段,字段名称为:dNO,含义为院系编号,以便记录该教师所属的工作院系。

alter table teacher
add dNo char(6)

(3)为teacher表添加一个参照完整性约束,外键字段为dNO,被参照字段为department(dNO)。

alter table teacher
add constraint yourname foreign key references department(dNo)

3、思考题

(1)如果要实现一个巨型表并行读取,以提高读取效率,应当如何借助文件组实现?

使用文件组可以将巨型表在物理层上是独立分开几部分,但是逻辑上是统一的,
这样可以实现并行读取,或者为表增加索引,这样虽然增加内存占用,但是提高读取速度

(2)参照完整性中的设置级联删除的主要危险是什么?

级联删除时,参照这个表的所有数据也会被删除,这样会导致很多数据丢失

(3)完整性可以约束一个字段的取值,也可以约束同一个表中两个字段的联合取值,请问有没有必要实现约束分别来源于两个表中的两个字段的联合取值?请举例说明。

我觉得没必要,在实体和实体间不要有多个关系,一个表的外键来自两个表,
就是这个表和两个表有关系,这是要避免的

stuManage2数据库的备份,下载还原即可

你可能感兴趣的:(MySQL&&SQL,server)