数据库系统原理

数据库系统原理,第1张

数据库系统原理》是一本全面介绍数据库系统理论、技术和方法的大学教科书,全书分为基础篇、设计篇、实现篇、专题篇和新技术篇。基础篇介绍数据库的基本概念和体系结构、关系数据库系统和数据库的安全性与完整性。设计篇讨论数据库设计的基本步骤和设计方法,并介绍实体-联系模型、扩展的实体-联系模型和关系数据库的函数依赖理论。实现篇介绍数据库的物理存储结构、数据字典、关系代数 *** 作算法、查询优化技术和事务处理技术。专题篇介绍新一代数据库技术及应用、扩展的关系数据库系统、面向对象与对象关系数据库系统、分布式数据库系统和并行数据库技术。新技术篇介绍数据库领域的新进展,包括数据仓库与联机分析、数据挖掘、Web信息检索与Web数据管理技术等。

《数据库系统原理》内容丰富,系统性强,知识体系新颖,理论与实践结合,具有先进性和实用性,是高校计算机、信息与科学计算及信息管理与信息系统等专业本科生和研究生数据库课程教材,也可作为数据库领域从业人员的参考书。《数据库系统原理》还将提供电子课件和实验指导等教辅材料。

开始的时候你可以针对某一种数据库学习,比如Sql Server 、Oracle、MySql,因为这些数据库虽说有不同之处,但是大同小异,只要对一种数据库了解了,其他的数据库也就没什么问题了。相同之处:

1、SQL(标准化查询语言),这个是所有数据库都通用的,只要学会了这个语言,你就可以游走在所有数据库系统之间,屡试不爽!

2、原理,目前主流数据库都是关系型数据库,就如同面向对象程序设计语言一样,虽说C#和java是两款不同的语言,但是都是面向对象语言,只要是面向对象语言,所有程序无非就是对象和对象之间的关系和调用的过程集合而已。关系型数据库也是同理。了解了一种关系型数据库的原理之后,其他的也是无师自通。

不同之处:

1、方言,方言就通现实生活中不同地区的方言是一样的。不同数据库之间会有他们自己方言,像函数,不同数据库有自己的不同的函数,虽说功能一样,但是写法不同。如果你在实际中用到了其他的数据库就要学习他的函数,原理和大的思路上都是一样的。所以方言其实一种不统一而带来的产物,慢慢的应该会消减去掉!

2、细节方面的差异。

推荐一本好书。Oracle是非常强大的数据库系统,大型的服务器上都是运行的Oracle或是DB2,所以学习Oracle是非常主流的。而且Oracle的参考资料非常的多。用户多。所以学习Oracle很必要。推荐《《ORACLE 9i/10g入门与实践》。9i和10g是两个不同的版本,是两本书。

这个是2010年5月16日上海交大的数据库系统原理的试题培训题,一共有16道。考试的题目就是从这16道中选择9道,通过5道就算通过了。

考试用的是SQL Server 2000

《数据库原理》上机考试环境

先打开我的电脑  查看是否有F盘 和G盘。

然后启动Microsoft SQL server  查询分析器  输入SQL server 服务器名(cs-gate-2)、 登录名(user机器号)和密码(user机器号)  进入查询分析器窗口。

完成考题后,请查看F盘上是否存在一个sql 和一个txt文件。

--------------------------------------------------------------------

模拟题

在“学生管理库”下有已表:S(Sno,Sname,Ssex,Sage,Sdept,

Sclass)分别表示:学号、姓名、性别、年龄和系名和班级;C(Cno,Cname,Ctime)分别表示:课程号、课程名和学时数;S_C(Sno,Cno,Grade)分别表示:学号、课程号和成绩。

1 找出所有成绩小于60分的学生姓名、学号和成绩。

2 统计所有参加选修学生的人数。

3找出选修“数据结构”课程最高成绩学生的姓名、性别、年龄及

分数。

4 找出比机械系所有学生年龄都小的其他系学生的学号和姓名。

5 找出所有选修“数据库原理”课程学生的姓名、系名和成绩。

6 建一新表:T_C (Tno (教师编号,C, 4), Cno(课程号,C,3),

Sclass(班级, C, 6), Rno(教室,C,4)),输入如下内容:

Tno Cno Sclass Rno

T001 C1 210201 R111

T002 C2 210201 R115

T003 C3 210201 R203

T004 C4 220202 R301

T005 C5 220202 R101

T006 C6 220202 R201

7 找出选修“ *** 作系统”课程的210201班学生上课所在教室及教

师编号。

8 将对T_C表的删除权转授于user7,查询、插入权转授于user2

和user3。

9 找出选修T006教师所上课程的课程名及学时数。

10 找出在R111教室上课的学生姓名与课程名。

11 找出210201班C1课程的教师编号及学生成绩,并按成绩降

序输出。

12 找出至少选修三门(包括三门)以上课程学生的学号、姓名

和班级。

13 找出最低分学生的学号、姓名和成绩。

14 建一视图:H_S_C:包含属性:Sname,Cname,Grade, 它是所有

成绩大于60分学生的信息。

15 统计选修“C3”课程的学生人数。

16 列出每位学生的学号和平均成绩,并按学号降序排列。

----------------------------------------------------------------

模拟题参考答案:

1 Select SSname,S_CSno,S_CGrade from S,S_C where

SSno=S_CSno and Grade < 60

2 Select count(SSno) from S where SSno in (select distinct Sno

from S_C) (或 Select distinct count (Sno) from S )

3 Select Sname,Ssex,Sage,Grade from S,S_C where SSno =

S_CSno and Grade =(select max (grade) from S_C,C where

CCno = S_CCno and Cname = ‘数据结构’)

4 Select Sno,Sname from S where Sdept <> ‘机械’ and Sage < (select min(Sage) from S group by Sdept having Sdept=‘机械’)

5 Select SSname,SSdept,S_CGrade from S,S_C where SSno = S_CSno and S_CCno in (select Cno from C where Cname = ‘数据库原理’)

6 Create table T_C(Tno char(4) not null,Cno char(3) not null,

Sclass char(6) not null, Rno char(4) not null)

Insert into T_C values(‘T001’, ‘ C1’, ‘ 210201’, ‘ R111’)

Insert into T_C values(‘T002’, ‘ C2’, ‘ 210201’, ‘ R115’)

Insert into T_C values(‘T003’, ‘ C3’, ‘ 210201’, ‘ R203’)

Insert into T_C values(‘T004’, ‘ C4’, ‘ 210202’, ‘ R301’)

Insert into T_C values(‘T005’, ‘ C5’, ‘ 210202’, ‘ R101’)

Insert into T_C values(‘T006’, ‘ C6’, ‘ 210202’, ‘ R201’)

7 Select Rno,Tno from T_C where Cno = (select Cno from C where

Cname = ‘ *** 作系统’) and Sclass = ‘210201’

8 Grant delete on T_C to user7

Grant select,insert on T_C to user2,user3

9 Select CCname,Ctime from C where CCno in (select Cno from T_C where Tno = ‘T006’)

10 Select SSname,CCname from S,C,S_C where SSno=S_CSno and

CCno=S_CCno and CCno in (Select Cno from T_C where Rno =

‘R111’)

11 Select T_CTno,S_CGrade from T_C,S_C where T_CCno =

S_CCno and T_CCno = ‘C1’ and T_CSclass = ‘210201’order by S_CGrade desc

12 Select Sno,Sname,Sclass from S where Sno in (select Sno from

S_C group by Sno having count(Sno) >= 3)

13 Select SSno,SSname,S_CGrade from S,S_C where

SSno=S_CSno and S_CGrade = (Select min(Grade) from S_C)

14 Create view H_S_C as (Select SSname,CCname,S_CGrade from

S,C,S_C where S_CCno = CCno and S_CSno = SSno and

S_CGrade > 60)

15 Select count() from S_C where Cno = ‘C3’

16 Select Sno,avg(Grade) from S_C group by Sno order by Sno

desc

----------------------------------------------------------------

S,C,S_C三个表考试时已经建好了,数据也有。

附表1( C表 )

Cno Cname Ctime

C6 CAD设计 54

C7 汇编语言 60

C4 C程序设计 64

C3 数据库原理 72

C5 计算机原理 72

C1 *** 作系统 82

C2 数据结构 92

--C

--create table

create table C

(

Cno char(2) not null,

Cname char(10) ,

Ctime smallint ,

primary key(Cno)

);

-- insert data to C

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C6','CAD设计','54');

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C7','汇编语言','60');

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C4','C程序设计','64');

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C3','数据库原理','72');

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C5','计算机原理','72');

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C1',' *** 作系统','80');

INSERT INTO S(Cno,Cname,Ctime) VALUES ('C2','数据结构','92');

附表2 (S表)

Sno Sname Ssex Sage Sdept Sclass

21002 张红 女 57 计算机 210201

22003 李进 男 53 机械 220202

24001 赵明 男 55 汽车 240203

23005 施英 女 24 信息 230001

23006 丁林 男 55 信息 230002

22004 刘晨 男 52 机械 220202

--S

--create table

create table S

(

Sno char(5) not null,

Sname char(6) not null,

Ssex char(2) ,

Sage smallint ,

Sdept char(6) ,

Sclass char(6) ,

primary key(Sno)

);

-- insert data to S

INSERT INTO S(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES ('21002','张红','女','57','计算机','210201');

INSERT INTO S(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES ('22003','李进','男','53','机械','220202');

INSERT INTO S(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES ('24001','赵明','男','55','汽车','240203');

INSERT INTO S(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES ('23005','施英','女','24','信息','230001');

INSERT INTO S(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES ('23006','丁林','男','55','信息','230002');

INSERT INTO S(Sno,Sname,Ssex,Sage,Sdept,Sclass) VALUES ('22004','刘晨','男','52','机械','220202');

附表3(S_C表)

Cno Cname Ctime

21002 C1 50

21002 C5 79

21002 C7 53

22003 C1 81

22003 C2 55

22003 C4 76

22003 C5 91

24001 C2 83

24001 C3 88

24001 C4 71

22004 C3 94

23005 C4 60

23005 C5 54

23006 C1 73

23006 C3 65

23006 C5 84

--S_C

--create table

create table S_C

(

Sno char(5) not null,

Cno char(2) not null,

Grade smallint ,

primary key(Sno,Cno)

);

-- insert data to S_C

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('21002','C1','50');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('21002','C5','79');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('21002','C7','53');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('22003','C1','81');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('22003','C2','55');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('22003','C4','76');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('22003','C5','91');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('24001','C2','83');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('24001','C3','88');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('24001','C4','71');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('22004','C3','94');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('23005','C4','60');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('23005','C5','54');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('23006','C1','73');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('23006','C3','65');

INSERT INTO S_C(Sno,Cno,Grade) VALUES ('23006','C5','84');

-----

结束

数据库原理解析。

实验结果(上传实验结果截图或者简单文字描述) 1知道了如何利用SQL server新建数据库,新建表,插入数据进表,修改表,建立索引,删除索引名等。

修改数据时,如果省略where自子句,则表示要修改表中的所有元组,一开始不知道这个地方,错了好几次。

以上就是关于数据库系统原理全部的内容,包括:数据库系统原理、数据库原理、求交大自考数据库系统原理实验考的范围~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9837273.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存