数据库程序设计1-5章实验

数据库程序设计1-5章实验,第1张

姚津泓实验作业 网页链接可以看看

--实验一

create database test1

on

(name=test1,

filename='d:\3116004357姚津泓\test1.mdf',

size=10,

maxsize=50,

filegrowth=5)

log on

(name=test1_log,

filename='d:\3116004357姚津泓\test1.ldf',

size=5mb,

maxsize=25mb,

filegrowth=5mb)

create database test2

on

(name=test11,

filename='d:\3116004357姚津泓\test11.mdf',

size=10,

maxsize=50,

filegrowth=5),

(name=test22,

filename='d:\3116004357姚津泓\test22.ndf',

size=10,

maxsize=50,

filegrowth=5),

(name=test33,

filename='d:\3116004357姚津泓\test33.ndf',

size=10,

maxsize=50,

filegrowth=5)

log on

(name=test11_log,

filename='d:\3116004357姚津泓\test11.ldf',

size=5mb,

maxsize=25mb,

filegrowth=5mb),

(name=test22_log,

filename='d:\3116004357姚津泓\test22.ldf',

size=5mb,

maxsize=25mb,

filegrowth=5mb)

create database test3

on

(name=dab1,

filename='d:\3116004357姚津泓\dab1.mdf',

size=10,

maxsize=50,

filegrowth=5),

filegroup fg11 --第一个文件组

(name=dab2,

filename='d:\3116004357姚津泓\dab2.ndf',

size=10,

maxsize=50,

filegrowth=5),

filegroup fg22 --第二个文件组

(name=dat1,

filename='d:\3116004357姚津泓\dat1.ndf',

size=10,

maxsize=50,

filegrowth=5),

(name=dat2,

filename='d:\3116004357姚津泓\dat2.ndf',

size=10,

maxsize=50,

filegrowth=5),

filegroup fg33--第三个文件组

(name=daz1,

filename='d:\3116004357姚津泓\daz1.ndf',

size=10,

maxsize=50,

filegrowth=5),

(name=daz2,

filename='d:\3116004357姚津泓\daz2.ndf',

size=10,

maxsize=50,

filegrowth=5)

alter database test1

add file

(name=te,

filename='d:\3116004357姚津泓\te.ndf',

size=10,

maxsize=50,

filegrowth=5

)

alter database test2

modify file

(name=test11,

filename='d:\3116004357姚津泓\test11.mdf',

maxsize=55

)

drop database test1

--实验2--

create database 实验

create schema yaojinhong

create table yaojinhong.仓库

(

仓库号char(6)primary key check (仓库号like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),

城市char(10) unique not null,

面积 int check(面积>=50)

)

create table yaojinhong.职工

(

职工号char(8)primary key check (职工号like'[A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'),

仓库号char(6)constraint ck foreign key references yaojinhong.仓库(仓库号),

工资 money check (工资>=1000 and 工资<=10000)

)

create table yaojinhong.供应商

(

供应商号 char(4)primary key check (供应商号like'[S][0-9][0-9][0-9]'),

供应商名 char(16),

地址char(30),

)

create table yaojinhong.订购单

(职工号 char(8) not null foreign key references yaojinhong.职工.(职工号),

供应商号 char(4) null constraint supply foreign key references yaojinhong.供应商(供应商号) on delete set null,

订购单号 char(6) primary key check(订购单号 like 'OR[0-9][0-9][0-9][0-9]'),

订购日期 datetime default getdate(),

金额 money default null

)

create table yaojinhong.订购单明细

(订购单号 char(6) not null foreign key references yaojinhong.订购单(订购单号),

序号 char(2),

产品名称 char(20),

单价 money default null check(单价>0),

数量 int not null check(数量>0),

primary key(订购单号,序号)

)

alter table yaojinhong.订购单

add 完成日期 datetime default null

alter table yaojinhong.订购单明细

add check(数量 between 0 and 1000)

alter table yaojinhong.订购单明细

alter column 数量 int not null alter table yaojinhong.供应商

alter column 供应商名 varchar(30)

实验3

insert into yaojinhong.仓库 values('QW0001','广州',500)

insert into yaojinhong.仓库 values('QW0002','上海',900)

insert into yaojinhong.仓库 values('QW0003','北京',250)

insert into yaojinhong.仓库 values('QW0004','纽约',1000)

insert into yaojinhong.仓库 values('QW0005','深圳',650)

insert into yaojinhong.职工 values('ZG000001','QW0005',3000)

insert into yaojinhong.职工 values('ZG000002','QW0001',5600)

insert into yaojinhong.职工 values('ZG000003','QW0004',6600)

insert into yaojinhong.职工 values('ZG000004','QW0002',3800)

insert into yaojinhong.职工 values('ZG000005','QW0005',3900)

insert into yaojinhong.职工 values('ZG000006','QW0001',4600)

insert into yaojinhong.职工 values('ZG000007','QW0003',4000)

insert into yaojinhong.职工 values('ZG000008','QW0003',5000)

insert into yaojinhong.职工 values('ZG000009','QW0002',4800)

insert into yaojinhong.职工 values('ZG000010','QW0004',6000)

insert into yaojinhong.供应商 values('S001','华广','深圳')

insert into yaojinhong.供应商 values('S002','广工','广州')

insert into yaojinhong.供应商 values('S003','美的','茂名')

insert into yaojinhong.供应商 values('S004','乐视','深圳')

insert into yaojinhong.供应商 values('S005','康佳','广州')

insert into yaojinhong.订购单 values('ZG000007','S005','OR0001','2015-1-6',5000,'2015-2-5')

insert into yaojinhong.订购单 values('ZG000002','S001','OR0002','2015-2-3',10000,'2015-3-4')

insert into yaojinhong.订购单 values('ZG000003','S004','OR0003','2015-2-17',3000,'2015-5-16')

insert into yaojinhong.订购单 values('ZG000006','S002','OR0004','2015-2-16',9000,'2015-4-18')

insert into yaojinhong.订购单 values('ZG000010','S005','OR0005','2015-3-20',8000,'2015-6-27')

insert into yaojinhong.订购单 values('ZG000001','S001','OR0006','2015-3-22',7500,'2015-7-29')

insert into yaojinhong.订购单 values('ZG000006','S003','OR0021','2015-2-15',4600,'2015-10-13')

insert into yaojinhong.订购单 values('ZG000004','S002','OR0007','2015-2-23',8500,'2015-8-29')

insert into yaojinhong.订购单 values('ZG000003','S005','OR0008','2015-1-5',3600,'2015-11-11')

insert into yaojinhong.订购单 values('ZG000001','S004','OR0009','2015-1-31',7600,'2015-12-14')

insert into yaojinhong.订购单 values('ZG000007','S001','OR0010','2015-3-25',12000,'2015-7-30')

insert into yaojinhong.订购单 values('ZG000008','S002','OR0011','2015-2-26',4600,'2015-9-27')

insert into yaojinhong.订购单 values('ZG000010','S002','OR0012','2015-1-28',3400,'2015-11-21')

insert into yaojinhong.订购单 values('ZG000009','S004','OR0013','2015-3-19',2300,'2015-10-24')

insert into yaojinhong.订购单 values('ZG000007','S005','OR0014','2015-2-23',9000,'2015-9-21')

insert into yaojinhong.订购单 values('ZG000008','S003','OR0015','2015-2-27',6400,'2015-12-23')

insert into yaojinhong.订购单 values('ZG000002','S001','OR0016','2015-1-30',7900,'2015-6-30')

insert into yaojinhong.订购单 values('ZG000005','S004','OR0017','2015-1-27',20000,'2015-8-18')

insert into yaojinhong.订购单 values('ZG000009','S004','OR0018','2015-3-5',13000,'2015-7-31')

insert into yaojinhong.订购单 values('ZG000004','S002','OR0019','2015-3-14',7000,'2015-6-17')

insert into yaojinhong.订购单 values('ZG000006','S005','OR0020','2015-2-21',4300,'2015-5-25')

insert into yaojinhong.订购单明细 values('OR0020','01','沐浴露',32,240)

insert into yaojinhong.订购单明细 values('OR0001','02','洗衣粉',30,125)

insert into yaojinhong.订购单明细 values('OR0012','03','洗衣液',39,59)

insert into yaojinhong.订购单明细 values('OR0014','04','香皂',14,99)

insert into yaojinhong.订购单明细 values('OR0004','05','盐',2,169)

insert into yaojinhong.订购单明细 values('OR0005','06','酱油',14,65)

insert into yaojinhong.订购单明细 values('OR0011','07','化妆品',26,24)

insert into yaojinhong.订购单明细 values('OR0019','08','洗面奶',39,68)

insert into yaojinhong.订购单明细 values('OR0008','09','面膜',5,147)

insert into yaojinhong.订购单明细 values('OR0003','10','花生油',36,258)

insert into yaojinhong.订购单明细 values('OR0017','11','鼠标',69,72)

insert into yaojinhong.订购单明细 values('OR0015','12','鼠标垫',18,64)

insert into yaojinhong.订购单明细 values('OR0016','13','移动电源',58,69)

insert into yaojinhong.订购单明细 values('OR0012','14','插座',37,169)

insert into yaojinhong.订购单明细 values('OR0011','15','牛奶',72,111)

insert into yaojinhong.订购单明细 values('OR0020','16','洗洁精',9,114)

insert into yaojinhong.订购单明细 values('OR0019','17','洁厕液',6,300)

insert into yaojinhong.订购单明细 values('OR0010','18','鸡蛋',14,124)

insert into yaojinhong.订购单明细 values('OR0009','19','牛肉',38,300)

insert into yaojinhong.订购单明细 values('OR0016','20','内裤',59,654)

insert into yaojinhong.订购单明细 values('OR0018','21','鞋子',299,300)

insert into yaojinhong.订购单明细 values('OR0015','22','手表',890,34)

insert into yaojinhong.订购单明细 values('OR0005','23','钱包',129,124)

insert into yaojinhong.订购单明细 values('OR0008','24','行李箱',344,64)

insert into yaojinhong.订购单明细 values('OR0014','25','手袋',3,874)

insert into yaojinhong.订购单明细 values('OR0018','26','篮球',360,59)

insert into yaojinhong.订购单明细 values('OR0003','27','足球',260,36)

insert into yaojinhong.订购单明细 values('OR0005','28','羽毛球拍',78,69)

insert into yaojinhong.订购单明细 values('OR0007','29','乒乓球拍',89,145)

insert into yaojinhong.订购单明细 values('OR0020','30','羽毛球',5,645)

insert into yaojinhong.订购单明细 values('OR0013','31','乒乓球',3,542)

insert into yaojinhong.订购单明细 values('OR0016','32','牙膏',23,200)

insert into yaojinhong.订购单明细 values('OR0009','33','牙刷',6,456)

insert into yaojinhong.订购单明细 values('OR0019','34','防晒霜',56,65)

insert into yaojinhong.订购单明细 values('OR0017','35','水杯',39,1187)

insert into yaojinhong.订购单明细 values('OR0010','36','拖把',15,187)

insert into yaojinhong.订购单明细 values('OR0004','37','扫把',6,200)

insert into yaojinhong.订购单明细 values('OR0005','38','垃圾桶',16,254)

insert into yaojinhong.订购单明细 values('OR0006','39','书',46,688)

insert into yaojinhong.订购单明细 values('OR0016','40','卫生纸',13,500)

insert into yaojinhong.订购单明细 values('OR0020','41','相机',3698,32)

insert into yaojinhong.订购单明细 values('OR0013','42','手机',2000,200)

insert into yaojinhong.订购单明细 values('OR0017','43','音响',500,143)

insert into yaojinhong.订购单明细 values('OR0001','44','吸尘器',1688,40)

insert into yaojinhong.订购单明细 values('OR0012','45','油烟机',3500,10)

insert into yaojinhong.订购单明细 values('OR0010','46','台式电脑',4000,25)

insert into yaojinhong.订购单明细 values('OR0013','47','空调',50,230)

insert into yaojinhong.订购单明细 values('OR0005','48','电视机',1300,100)

insert into yaojinhong.订购单明细 values('OR0016','49','洗衣机',3400,15)

insert into yaojinhong.订购单明细 values('OR0011','50','笔记本',6000,20)

insert into yaojinhong.仓库 values('QW0001','惠州',600)

原因:违反了PRIMARY KEY 约束'PK__仓库__530C599C7F60ED59'。不能在对象'yaojinhong.仓库' 中插入重复键。语句已终止。

insert into yaojinhong.职工 values('ZG000011','QW0009',3000)

原因:仓库号列参照仓库表的仓库号,此时在仓库表中找不到仓库号为QW0009的仓库。INSERT 语句与FOREIGN KEY 约束"FK__职工__仓库号__0AD2A005"冲突。该冲突发生于数据库"实验",表"yaojinhong.仓库", column '仓库号'。

insert into yaojinhong.仓库 values('QW0006','天津',30)

原因:在定义时,面积要大于等于50,这里面积为30,明显违反了用户定义完整性

delete yaojinhong.仓库 where 城市='北京'

删除 *** 作失败。因为有职工参照了干记录

delete yaojinhong.供应商 where 供应商号='S002'

因为删除参照完整性规则定义为set null

alter table yaojinhong.职工

drop constraint ck

alter table yaojinhong.职工

drop column 仓库号

alter table yaojinhong.职工

add 仓库号 char(6)constraint ck foreign key references yaojinhong.仓库

on delete cascade

on update cascade

update yaojinhong.职工 set 仓库号='QW0006' where 职工号='ZG000002'

更新 *** 作失败,因为职工表所参考的仓库表中不存在仓库号为QW0006的仓库。

update yaojinhong.仓库 set 仓库号=null where 仓库号='QW0001'

更新 *** 作失败,因为仓库号是关键字,不能为空。

update yaojinhong.仓库 set 面积=30 where 仓库号='QW0001'

更新 *** 作失败,因为面积被定义约束大于或等于50,此处面积=30,显然违反了约束。

update yaojinhong.职工 set 工资=(工资+(工资*0.1))

update yaojinhong.订购单 set 金额=(select SUM(单价*数量) from yaojinhong.订购单明细

where 订购单明细.订购单号=订购单.订购单号)

delete yaojinhong.职工 where 仓库号 in (select 仓库号 from yaojinhong.仓库 where 城市='北京')

delete yaojinhong.订购单 where 供应商号 in (select 供应商号 from yaojinhong.供应商 where 供应商名='广工')

实验4

1 select distinct 工资 from yaojinhong.职工

select all 工资 from yaojinhong.职工

2 select * from yaojinhong.仓库

3 select 职工号 from yaojinhong.职工 where 工资>5000

4 select * from yaojinhong.仓库 where 仓库号 in(select 仓库号 from yaojinhong.职工 where 工资>5000)

5 select 职工号 from yaojinhong.职工 where 仓库号 in ('QW0005','QW0002') and 工资<5000

6 select * from yaojinhong.职工 where 工资 between 3000 and 5000

7 select * from yaojinhong.供应商 where 供应商名 like '%公司'

8 select * from yaojinhong.仓库 where 城市!='北京

9 select * from yaojinhong.订购单 where 供应商号 is null

10 select * from yaojinhong.订购单 where 供应商号 is not null

11 select * from yaojinhong.职工  order by 工资 ASC

12 select * from yaojinhong.职工  order by 仓库号 ASC,工资 DESC

13 select 职工号,城市 from yaojinhong.职工  join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号 where 工资>6000

14 select 职工号,城市 from yaojinhong.职工  join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号 where 面积>700

16 select * from yaojinhong.仓库  cross join yaojinhong.职工

17 select * from yaojinhong.仓库  cross join yaojinhong.职工

where 仓库.仓库号=职工.仓库号

18 select 供应商.供应商号,供应商名,订购单号,订购日期 from yaojinhong.供应商  join yaojinhong.订购单

on 供应商.供应商号=订购单.供应商号

19 select 供应商.供应商号,供应商名,订购单号,订购日期 from yaojinhong.供应商 left join yaojinhong.订购单

on 供应商.供应商号=订购单.供应商号

20 select 供应商.供应商号,供应商名,订购单号,订购日期 from yaojinhong.供应商 right join yaojinhong.订购单 on 供应商.供应商号=订购单.供应商号

21 select 供应商.供应商号,供应商名,订购单号,订购日期 from yaojinhong.供应商 full join yaojinhong.订购单 on 供应商.供应商号=订购单.供应商号

22 select 城市 from yaojinhong.仓库 where 仓库号 in

(select 仓库号 from yaojinhong.职工 where 工资=3300)

23 select * from yaojinhong.仓库 where 仓库号 not in

(select 仓库号 from yaojinhong.职工 where 工资<5000)

24 select * from yaojinhong.职工 where 工资 in

(select  工资 from yaojinhong.职工 where 职工号='ZG000001')

and 职工号!='ZG000001'

25 select 城市 from yaojinhong.仓库 where 仓库号 in

(select 仓库号 from yaojinhong.职工 where 职工号 in

(select 职工号 from yaojinhong.订购单 where 供应商号 in

(select 供应商号 from yaojinhong.供应商 where 地址='广州')))

26 select 供应商名 from yaojinhong.供应商 join yaojinhong.订购单 on 供应商.供应商号=订购单.供应商号 join yaojinhong.职工 on 订购单.职工号=职工.职工号 join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号 where 地址='广州'and 城市='广州'

select 供应商名

from yaojinhong.供应商 where 地址='广州' and 供应商号 in

(select 供应商号 from yaojinhong.订购单 join yaojinhong.职工 on 订购单.职工号=职工.职工号

join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号 where 城市='广州')

27 select 仓库号 from yaojinhong.仓库 where 仓库号 in

(select 仓库号 from yaojinhong.职工 where 工资>any

(select 工资 from yaojinhong.职工 join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号

where 仓库.仓库号='QW0001')and 仓库号!='QW0001')

28 select 仓库号 from yaojinhong.仓库 where 仓库号 in

(select 仓库号 from yaojinhong.职工 where 工资>all

(select 工资 from yaojinhong.职工 join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号

where 仓库.仓库号='QW0001'))

29 select * from yaojinhong.订购单 a where 金额=

(select MAX(金额) from yaojinhong.订购单 b where a.职工号=b.职工号)

order by 职工号 ASC

30 select * from yaojinhong.仓库 where exists(select * from yaojinhong.职工 where 职工号 is null and 职工.仓库号=仓库.仓库号)

31 select * from yaojinhong.仓库 where not exists(select * from yaojinhong.职工 where 职工号 is null and 职工.仓库号=仓库.仓库号)

32 select COUNT(distinct 城市)城市数目 from yaojinhong.仓库 where 城市 is not null

33 select SUM(工资)需要支付职工工资总数 from yaojinhong.职工

34 select SUM(工资)北京和上海的仓库职工的工资总和 from yaojinhong.职工 join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号

where 城市='北京' or  城市='上海'

35 select AVG(面积)平均面积 from yaojinhong.仓库 where 仓库号 not in

(select 仓库号 from yaojinhong.职工 where 工资<6000)

36 select max(金额)工资大于的职工所经手的订购单最高金额 from yaojinhong.订购单 where 职工号 in

(select 职工号 from yaojinhong.职工 where 工资>6000)

37 select 仓库号,AVG(工资)平均工资 from yaojinhong.职工

group by 仓库号

38 select 仓库号,max(金额)最高金额,MIN(金额)最低金额,AVG(金额)平均金额 from yaojinhong.职工 join yaojinhong.订购单 on 职工.职工号=订购单.职工号 group by 仓库号

39 select 订购单.订购单号,AVG(金额)平均金额 from yaojinhong.订购单 join yaojinhong.订购单明细  on 订购单.订购单号=订购单明细.订购单号

group by 订购单.订购单号 having COUNT(订购单.订购单号)>=5

40 select 仓库号,职工号,工资 from yaojinhong.职工

order by 仓库号

compute avg(工资),sum(工资)by 仓库号

compute avg(工资),sum(工资)

41select 订购单明细.订购单号,序号,产品名称,单价,数量,金额

from yaojinhong.订购单明细 join yaojinhong.订购单 on

订购单.订购单号=订购单明细.订购单号 order by 订购单.订购单号

compute avg(金额),sum(金额)by 订购单.订购单号

compute avg(金额),sum(金额)

42 select * from yaojinhong.订购单

compute avg(金额),sum(金额)

实验5

(1) 基于单个表按投影 *** 作定义视图。

create view yaojinhong.仓库视图 as select * from yaojinhong.仓库

(2) 基于单个表按选择 *** 作定义视图。

create view yaojinhong.仓库视图1 as select * from yaojinhong.仓库 where 城市='广州'

(3) 基于单个表按选择和投影 *** 作定义视图。

create view yaojinhong.仓库视图2 as select 仓库号,面积 from yaojinhong.仓库 where 城市='广州'

(4) 基于多个表根据连接 *** 作定义视图。

create view yaojinhong.视图3 as select 职工号,城市,工资 from yaojinhong.职工 join yaojinhong.仓库 on 职工.仓库号=仓库.仓库号

(5) 基于多个表根据嵌套查询定义视图。

create view yaojinhong.视图4 as select * from yaojinhong.仓库 where 仓库号 in

(select 仓库号 from yaojinhong.职工 where 工资>4000)

(6) 定义含有虚字段的视图。

create view yaojinhong.虚字段视图(仓库号,城市,面积) as select 仓库号,城市,面积*2 from yaojinhong.仓库

2、分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)。

select * from yaojinhong.仓库视图

select * from yaojinhong.仓库视图1 where 城市='广州'

select 仓库号,面积 from yaojinhong.仓库视图2

select 职工号,城市,工资 from yaojinhong.职工 join yaojinhong.仓库视图 on 职工.仓库号=仓库视图. 仓库号

select * from yaojinhong.仓库视图 where 仓库号 in

(select 仓库号 from yaojinhong.职工 where 工资>4000)

3、在不同的视图上分别设计一些插入、更新和删除 *** 作,分情况讨论哪些 *** 作可以成功完成,哪些 *** 作不能完成,并分析原因。

insert into yaojinhong.仓库视图(仓库号,城市) values('QW0008','长沙')

update yaojinhong.仓库视图 set 面积=650 where 仓库号='QW0008'

insert into yaojinhong.仓库视图 values('QW0008','长沙',500)

update yaojinhong.仓库视图 set 面积=700 where 仓库号='QW0001'

delete yaojinhong.仓库视图 where 仓库号='QW0008'

delete yaojinhong.仓库视图 where 仓库号='QW0008'

数据库设计的基本步骤

1、需求分析阶段

进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难和最耗费时间的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建数据库“大厦”的速度与质量。需求分析做的不好,可能会导致整个数据库设计返工重做。

2、概念结构设计阶段

概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。

3、逻辑结构设计阶段

逻辑结构设计是将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。

4、物理设计阶段

物理结构设计师为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方式)。

5、数据库实施阶段

在数据库实施阶段,设计人员运用数据库管理系统提供数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进行测试运行。

6、数据库运行和维护阶段

数据库应用系统经过试运行后即可投入正式运行,在数据库系统运行过程中必须不断对其进行评估、调整与修改。

数据库设计的基本原则

1、一致性原则:对数据来源进行统一、系统的分析与设计,协调好各种数据源,保证数据的一致性和有效性。

2、完整性原则:数据库的完整性是指数据的正确性和相容性。要防止合法用户使用数据库时向数据库加入不合语义的数据。对输入到数据库中的数据要有审核和约束机制。

3、安全性原则:数据库的安全性是指保护数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄露、更改或破坏。要有认证和授权机制。

4、可伸缩性与可扩展性原则:数据库结构的设计应充分考虑发展的需要、移植的需要,具有良好的扩展性、伸缩性和适度冗余。

5、规范化原则:数据库的设计应遵循规范化理论。规范化的数据库设计,可以减少数据库插入、删除、修改等 *** 作时的异常和错误,降低数据冗余度等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6461534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存