当前位置:文档之家› 数据库整理

数据库整理

数据库整理
数据库整理

命令行进入SQLCMD:

sqlcmd –s machineName\instanceName

使用数据库:

USE db_name

GO

删除数据库:(不能删除系统数据库)

USE tempdb

GO

SELECT name,state_desc

FROM sys.databases

WHERE name=’db_name’

GO

DROP DATABASE db_name1,db_name2,…

GO

更改数据库文件

ALTER DATABASE db_name

{ADD FILE-- 指定要添加的文件

|ADD LOG FILE-- 指定要添加的日志文件| REMOVE FILE logical_file_name -- 指定要删除的数据文件名| MODIFY FILE-- 指定要更改的文件

| MODIFY NAME= new_dbname -- 重命名数据库

}

修改数据库属性:

ALTER DATABASE db_name

SET ANSI_NULL_DEFAULT ON

更名:

USE tempdb

GO

ALTER DATABASE db_name

SET SINGLE_USER

ALTER DATABASE db_test

MODIFY NAME=db_new_name

ALTER DATABASE db_new_name

SET MULTI_USER

更改数据库文件组:

ALTER DATABASE db_name

ADD FILEGROUP filegroup_name [CONTAINS FILESTREAM]

|REMOVE FILEGROUP filegroup_nam--(要先删除组中的文件)|[MODIFY FILEGROUP filegroup_name

{|DEFAULT|NAME=new_filegroup_name}]

注意:要更改为默认文件组,文件组中至少要包含一个文件。

分离

[ , [ @skipchecks= ] 'skipchecks' ]

[ , [ @keepfulltextindexfile = ] 'KeepFulltextIndexFile' ]

附加

CREATE DATABASE db_name

ON [,..n]

FOR {ATTACH|ATTACH_REBUILD_LOG}

系统数据库

master数据库记录了SQL SERVER的数据、端点、服务器和系统配置信息。还有所有数据库及其数据库文件的位置,以及实例的初始化信息。

msdb数据库是SQL SERVER代理用于计划警报和作业及其它功能。其属性主要包括msdb数据文件、日志文件的初始值。

model数据库是创建其他用户数据库的模板。

resource数据库具有只读的特性。其中包含了SQL SERVER所用到的所有系统对象(系统视图)。一般不要对resource 数据库进行修改。不过,用户可以移动reource数据库。用户可用sys.objects系统视图查看系统对象。

tempdb数据库是一个全局临时资源。tempdb可以与所有连接共用。

表创建

USE db_name

GO

IF OBJECT_ID('.')IS NOT NULL

DROP TABLE.

GO

CREATE TABLE table_name

(

[NULL | NOT NULL]

[PRIMARY | UNIQUE]

[FOREIGN KEY [(column_name)]]

REFERENCES ref_table [(ref_column)]

...

......

[…n]

)

GO

也可以通过SELECT INTO创建表:

SELECT col1,col2,col3 INTO tb_name1 FROM tb_name2

表的修改

ALTER TABLE table_name

ADD [ ]

[PRIMARY KEY | CONSTRAINT]

[FOREIGN KEY (column_name) REFERENCES ref_table(ref_column)]

DROP [CONSTRAINT] constraint_name |COLUMN column_name

ALTER TABLE

ADD CONSTRAINT

()

sys.key_constraints

DROP TABLE table_name

系统表

系统表在性能和安全性上都存在问题,SQL Server的后续版本中将逐步删除系统表,因此最好使用目录视图来获取系统级信息。

用户无法对系统表进行修改操作,只有通过专用的管理员连接(DAC)才能直接查询和修改系统表。

临时表

存储在tempdb中

本地临时表:本地且对创建者可见,其它用户不可见,当用户断开连接时,系统自动删除之。

USE db_name

GO

CREATE TABLE #tb_name()

全局临时表:对所有用户可见,当使用安的所有用户断开连接时,系统自动删除之。

USE db_name

GO

CREATE TABLE ##tb_name()

专用的管理员连接

通过DAC,用户可以直接修改系统表。DAC需要用户到服务器现场方可操作。

SQLCMD –E –S machine_name\instanceName –A

其中-A表示使用DAC连接,-E建立信任连接(适用于Windows身份验证模式),-S表示连接到machine_name上的instanceName实例。

注意:在使用DAC之前,要打开SQL Server Browser服务。

数字类型

,默认18;S是小数位,要:0~P.默认为0.货币型精确为4位小数。

精确与存储字节数

逻辑数值型

bit(可以存储整型数据1、0或NULL。如果输入0以外的其他值时,SQL Server均将它们当作1看待)

近似数字类型(浮点数据)

REAL (精度7位)

FLOAT(建议使用):(精度15位)FLOAT[(n)]. n是尾数(科学计数法)

Unicode字符串

NTEXT

NCHAR[(n)]:n:1~4000,所占存储空间为2n个字节。

NVARCHAR[(n|max)]:max:2^31-1个字节,n:1~4000,占2n+2个字节。

字符串

CHAR:n:1~8000,占用n字节

VARCHAR:n:1~8000,占用n+2字节

TEXT

日期和时间

DATETIME (1753.1.1-9999.12.31)

SMALLDATETIME (1900.1.1-2079.6.6)

格式:'yyyy-mm-dd hh:mm:ss AM/PM'

转型

CAST(expression AS data_type):将指定的expression的值转换为由data_type所指定的数据类型的函数。CONVERT(data_type[(length)],expression [,style]):将指定的expression的值转换为由data_type所指定的数据类型的函数。

其它数据类型

CURSOR 可用于变量或存储过程OUTPUT参数,CREATE TABLE中的列,不能使用CURSOR数据类型TIMESTAMP 自动生成的二进制数字的数据类型,存储大小为8字节。在TIMESTAMP中只存储递增的数字,而不保留具体的日期或时间。一个表只能有一个TIMESTAMP列。

HIERARCHYID 长度可变的层次类型,创建具有层次结构的表.最适合存储的分层数据类型是树。UNIQUEIDENTIFIER 16字节的GUID。NEWID()函数获得一个初始值.

SQL_VARIANT 使数据库对象能够支持其他数据类型的值。

XML 可以存储XML数据的类型。最大不能超过2GB。

XML([CONTENT | DOCUMENT] XML_schema_collection_name)

TABLE 主要用于存储结果集。TABLE变量可用于函数、存储过程和批处理的内部,也可以作为参数。可以像SQL Server中普通的表那样使用。

GEOGRAPHY和GEOMETRY:空间类型

排序规则

查找所有字符排序规则

select name,description from fn_helpcollations()

修改数据库排序规则

ALTER DATABASE db_name COLLATE France_BIN

GO

SELECT CONVERT(VARCHAR,DATABASEPROPERTYEX(…db_name?,?collation?))

列级排序规则

支持NVARCHAR和NCHAR等字符串类型数据。

在CREATE TABLE时,由COLLATE子句设置。

查看

SELECT https://www.doczj.com/doc/069084638.html, AS列名,https://www.doczj.com/doc/069084638.html, AS数据类型, c.max_length AS长度,c.collation_name AS列的排序规则

FROM sys.columns AS c JOIN sys.types AS t

WHERE c.object_id=OBJECT_ID(…dbo.table_demo?)

修改

ALTER TABLE tb_name

ALTER column_name NCHAR(10)

COLLATE Greek_CS_AI

表达式级排序规则

表达式级排序规则是SQL语句运行时,通过COLLATE设置返回的结果集的排序规则。

USE db_name

GO

SELECT col1,col2

FROM tb_name

ORDER BY name COLLATE Latin1_General_CS_AI

二进制字符串(FILESTREAM)

BINARY[(n)]:固定长度二进制数据类型。n:1~8000,占n字节。

VARBINARY[(n|max)]:可变长度二进制数据类型。n:1~8000.max代表2^31-1个字节。实际存储空间n+2字节。IMAGE

如果没有指定n,默认为1。

使用FILESTREAM的条件:

存储对象都大于1MB

要求读取访问的速度较高

在开发基于数据库的软件时使用了中间件

开启FILESTREAM

EXEC sp_configure filestream_access_level,2

RECONFIGURE

注意:需要重新启动数据库引擎服务才能使FILESTREAM生效。

创建支持FILESTREAM的数据库

CREATE DATABASE demo_filestream

ON

PRIMARY

(NAME=demo_filestream_data,

FILENAME=…c:\demo_filestream_data.mdf?),

FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM

(NAME=demo_filestream_fs,

FILENAME=…c:\demo_filestream_fs?)

LOG ON

(NAME=demo_filestream_log,

FILENAME=…c:\demo_filestream_log.ldf?)

创建表,存储FILESTREAM数据

CREATE TABLE Records

(

Id UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE,

SerialNumber INTEGER UNIQUE,

Chart VARBINARY(MAX) FILESTREAM NULL

)

在FILESTREAM中插入一行数据记录时,只能插入NULL或VARBINARY(MAX)值。

INSERT INTO Records VALUES(NEWID(),1,NULL)

INSERT INTO Records VALUES(NEWID(),2,CAST(…?,AS VARBINARY(max)))--CAST是字符串截取函数

DELETE FROM Records WHERE SerialNumber=3

可以创建中文名称的数据库、表

如果表名称中含有空格,则用分隔符[]或双引号””括起来。

别名类型

SELECT学号=id,…姓名?=name FROM table_demo

SELECT id AS学号,name AS…姓名?FROM table_dem

注意:TABLE变量不支持别名类型。

计算列

SELECT salary1,salary2,salary1+salary2 AS总和FROM Table_1

CREATE TYPE语句

CREATE TYPE [ schema_name. ] type_name

{

FROM base_type

[ ( precision [ , scale ] ) ]

[ NULL | NOT NULL ]

|EXTERNAL NAME assembly_name [ .class_name ]

|AS TABLE({|}

[ ] [ ,...n ] )

} [ ; ]

IDENTITY的应用

IDENTITY(seed,increment),不能对标识列显式地插入值,否则将出错。如果需要显式地插入标识列的值,那么需要开启IDENTITY_INSERT选项。SET IDENTITY_INSERT column_identity ON

查询

[ WITH ]

SELECT [DISTINCT | ALL] <属性名表|* |<聚合函数>> [ INTO new_table ]

[ FROM < 表| 视图> ] [ WHERE <条件表达式> ]

[ GROUP BY < 属性名> [ HAVING <条件表达式> ] ]

[ ORDER BY < 属性名表> [ ASC | DESC ] ]

使用聚合函数

COUNT([DISTINCT | ALL] *)--统计元组个数

COUNT([DISTINCT | ALL] <列名>)--统计一列中值的个数

SUM([DISTINCT | ALL] <列名>)--计算一数值型列值的总和

AVG([DISTINCT | ALL] <列名>)--计算一数值型列值的平均值

MIN([DISTINCT | ALL] <列名>)--求一列值的最小值

注意:使用GROUP BY后,集函数是对分组进行统计。

连接查询

连接条件的一般格式为:[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>

(当连接运算符为=时,称为等值连接。)

注意:当输出的列涉及多个表时必须使用连接查询。

SELECT x.col1,y.col1,x.col2

FROM tb1 x,tb2 y

WHERE x.col3=y.col2

自身连接查询

SELECT https://www.doczj.com/doc/069084638.html,o,x.sno,x.degree

FROM score x,score y

WHERE https://www.doczj.com/doc/069084638.html,o='3-105'and x.degree>y.degree and

y.sno='109'and https://www.doczj.com/doc/069084638.html,o='3-105'

子查询(嵌套查询)

子查询一般跟在=、IN ()、SOME(ANY)、ALL ()和EXIST ()等谓词后面。子查询的执行由内到外。注意:SOME、ALL必须与关系比较符同时使用。

并运算(UNION):将多个SELECT查询的结果连接起来生成单个结果集合。

注意:使用UNION连接的SELECT必须有相同的数据类型的宽度。

相关子查询

相关子查询执行过程为由外到内交替执行。

SELECT sno,cno,degree

FROM score a

WHERE degree<

(SELECT AVG(degree)

FROM score b

WHERE https://www.doczj.com/doc/069084638.html,o=https://www.doczj.com/doc/069084638.html,o)

数据添加

INSERT [INTO] { table_name | view_name }

{ [(column_list)]

{VALUES(DEFAULT|NULL| expression }[,...n])

| derived_table

}

数据修改

UPDATE{ table_name | view_name }

SET column_name={DEFAULT|NULL| expression }[,...n]

[ WHERE search_condition]

数据删除

DELETE [FROM] { table_name | view_name }

[ WHERE search_condition]

分隔标识符

用双引号分隔开(仅当QUOTED_IDENTIFIER选项设置为ON时才有效);用方括号分隔。

例:SELECT*FROM "My Table"

例:SELECT*FROM [My Table]

局部变量

DECLARE{@local_variable data_type} [,…n]

SET @local_variable=expression

SELECT{@local_variable=expression} [,…n]

全局变量

以两个@@开头,在服务器级定义的,只读,存储的通常是一些SQL Server的配置设定值和统计数据。

批处理

两个GO之间的SQL语句可作为一个批处理。SQL Server服务器将批处理编译成一个可执行单元,一次性地发送到SQL Server服务器进行执行。

控制流程语句

BEGIN...END语句(相当于C的复合语句)

IF...ELSE语句(条件判断语句)

CASE语句(相当于C的switch语句)

Simple CASE expression:

CASE input_expression

WHEN when_expression THEN result_expression [ ...n ]

[ ELSE else_result_expression ]

END

Searched CASE expression:

CASE

WHEN Boolean_expression THEN result_expression [ ...n ]

[ ELSE else_result_expression ]

END

WHILE语句

WHILE Boolean_expression

{ sql_statement | statement_block }

[ BREAK ]

{ sql_statement | statement_block }

[ CONTINUE ]

{ sql_statement | statement_block }

GOTO语句

RETURN [integer_expression]:无条件地终止一个查询、存储过程或者批处理。

WAITFOR{DELAY 'time'|TIME'time'}

函数

用户定义函数

CREATE FUNCTION [ schema_name. ] function_name

( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type

[ = default ] }

[ ,...n ]

]

)

RETURNS return_data_type

[ AS ]

BEGIN

--function_body

RETURN scalar_expression

END

函数调用:变量=用户名.函数名称(实际参数列表)

数据汇总

COMPUTE BY子句:

[ COMPUTE

{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM }

( column_name ) } [ ,...n ]

[ BY expression [ ,...n ] ]

]

BY expression: 在结果集中生成控制中断和分类汇总。expression是关联ORDER BY 子句中order_by_expression的相同副本。通常,这是列名或列别名。可以指定多个表达式。在BY 之后列出多个表达式将把组划分为子组,并在每个组级别应用聚合函数。

如果使用COMPUTE BY,则还必须使用ORDER BY子句。表达式必须与在 QRDER BY 后列出的子句相同或是其子集,并且顺序必须相同。

GROUP BY子句:

[ GROUP BY [ ALL ] group_by_expression [ ,...n ]

[ WITH { CUBE | ROLLUP } ]

]

ALL:包含所有组和结果集,甚至包含那些其中任何行都不满足WHERE 子句指定的搜索条件的组和结果集。

CUBE:指定在结果集内不仅包含由GROUP BY 提供的行,还包含汇总行。

ROLLUP:指定在结果集内不仅包含由GROUP BY 提供的行,还包含汇总行。按层次结构顺序,从组内的最低级别到最高级别汇总组。

联接查询

内联接(INNER JOIN)

返回参与联接的数据表中所有匹配的行。

SELECT https://www.doczj.com/doc/069084638.html,ame,teacher.tname

FROM course INNER JOIN teacher ON(course.tno=teacher.tno)

左联接(LEFT [OUTER]JOIN)

返回参与联接的数据表中所有匹配的行和所有来自左表的不符合指定条件的行,在新增的属性上填NULL值。

SELECT https://www.doczj.com/doc/069084638.html,ame,teacher.tname

FROM course LEFT JOIN teacher ON(course.tno=teacher.tno)

功能:查询各课程的任课教师姓名以及没有任课教师的课程。

右联接(RIGHT [OUTER]JOIN)

返回参与联接的数据表中所有匹配的行和所有来自右表的不符合指定条件的行,在新增的属性上填NULL值。

SELECT https://www.doczj.com/doc/069084638.html,ame,teacher.tname

FROM course RIGHT JOIN teacher ON(course.tno=teacher.tno)

功能:查询各课程的任课教师姓名以及没有承担课程的教师。

完全外部联接(FULL [OUTER]JOIN)

返回参与联接的数据表中所有匹配的行和所有来自左、右表的不符合指定条件的行,在新增的属性上填NULL值。SELECT https://www.doczj.com/doc/069084638.html,ame,teacher.tname

FROM course FULL JOIN teacher ON(course.tno=teacher.tno)

功能:查询各课程的任课教师姓名以及没有任课教师的课程和没有承担课程的教师。

交叉联接(CROSS JOIN)

即进行两个表的笛卡尔积运算。

SELECT https://www.doczj.com/doc/069084638.html,ame,teacher.tname

FROM course CROSS JOIN teacher

在SELECT子句中使用INTO关键字可以创建新表并将结果行从查询插入新表中。不能与COMPUTE子句一起使用。SELECT student.sno,student.sname,https://www.doczj.com/doc/069084638.html,ame,score.degree

INTO tb_new_name

FROM student,course,score

WHERE

管理ntext、text和image数据

如果ntext、text和image数据值不超过Unicode串、字符串或二进制串的长度(分别为4000个字符、8000个字符和8000个字节),就可以在SELECT、UPDATE和INSERT语句中引用它们,其引用方式与较小的数据类型相同。

如果ntext、text和image数据值较大,则必须逐块处理

在SQL Server 2000中,用户可以在表上启用text in row选项,以使该表能够在其数据行中存储ntext、text或image数据。可以使用sp_tableoption存储过程来启用。

CREATE TABLE table2(c1 int,c2 text)

EXEC sp_tableoption'table2','text in row','on'

INSERT table2 VALUES(1,'This is a text')

检索ntext、text或image值

?在SELECT语句中引用该列

?原理:将该列绑定到一个程序变量上,然后使用特殊的API函数或方法逐块检索数据。

?注意:如果数据的长度大于SET TEXTSIZE中指定的长度,则必须增大TEXTSIZE或使用其他方法。在全局变量@@TEXTSIZE中存储了当前的TEXTSIZE设置。

?SET TEXTSIZE:可修改TEXTSIZE 设置。

例1:SET TEXTSIZE 64512 --将TEXTSIZE设置为64512字节

例2:SET TEXTSIZE 0 --设为默认值4096字节(4KB)

?使用TEXTPTR函数可获得传递给READTEXT语句的文本指针

?格式:READTEXT {table.column text_ptr offset size} [HOLDLOCK]

?其中各参数含义为:

table.column。是从中读取的表和列的名称。

text_ptr。有效文本指针。

offset。开始读取text、image或ntext数据之前跳过的字节数。

size。是要读取数据的字节数(使用text或image数据类型时)或字符数(使用ntext数据类型时)。

HOLDLOCK。使文本值一直锁定到事务结束。

功能:读取ntext、text或image数据块。

例:读取table2表的c2字段的第1到第7个字符。

--对text数据类型的对象使用指针前,应关闭text in row选项

EXEC sp_tableoption 'table2', 'text in row', 'off'

DECLARE @ptrval varbinary(16)

--获得指向文本的指针

SELECT @ptrval=TEXTPTR(c2) FROM table2

--从指向文本的指针处读取table2表的c2列的7个字节

READTEXT table2.c2 @ptrval 0 7

?使用SUBSTRING函数可检索从列开头特定偏移位置开始的数据块

?格式: SUBSTRING(expression,start,length)

?其中各参数含义如下:

? expression。是字符串、二进制字符串、text、image、列或包含列的表达式。

? start。是一个整数,指定子串的开始位置。

? length。是一个整数,指定子串的长度。

?功能:返回指定表达式中从指定位置开始长度为length的子字符串。

例:检索 table2表的c2字段的第1到第7个字符。

?使用PATINDEX函数可检索一些特定字节组合的偏移量

?格式:PATINDEX('%pattern%',expression)

?其中各参数含义如下:

?pattern。要检索的字符串,可以使用通配符。

?expression。通常为要在其中搜索指定模式的列。

?功能:返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

例:检索table2表中字符a位于c2字段的第几个。

SELECT PATINDEX('%a%',c2) AS 起始位置 FROM table2

修改ntext、text或image值

●使用数据库API函数

?将程序变量与ntext、text或image列的参数标记绑定。然后调用相应的数据库API函数,逐块向数据库

发送长数据。

●使用WRITETEXT语句重写该列的整个数据值

?格式:WRITETEXT {table.column text_ptr} {data}

?其中各参数的含义为:

◆table.column。要更新的表和text、ntext或image列的名称。

◆text_ptr。指向text、ntext或image数据的指针的值。“text_ptr”的数据类型必须为binary(16)。

◆data。要存储的实际text、ntext或image数据。

例:修改test数据库中的table2表的c2列的值。

DECLARE @ptrval varbinary(16)

--获得指向文本的指针

SELECT @ptrval=TEXTPTR(c2) FROM table2

--用指定的字符串修改table2表的c2列的值

WRITETEXT table2.c2 @ptrval 'This is a modified text.'

●使用UPDATETEXT语句更新ntext、text或image列的特定数据块

?格式:

UPDATETEXT{table.dest_column dest_text_ptr}

{NULL| insert_offset}

{NULL| delete_length}

?[inserted_data | {table.src_column src_text_ptr}]其中各参数的含义为:

◆table.dest_column。要更新的表和text、ntext或image列的名称。

◆dest_text_ptr。指向更新的text、ntext或image数据的指针的值。

◆insert_offset。插入新数据前从现有列的起点开始要跳过的字节数(text、image)或字符数(ntext)。

◆delete_length。是从“insert_offset”位置开始的、要从现有text、ntext或image列中删除

的数据长度。

◆inserted_data。是要插入到现有text、ntext或image列的数据。

◆table.src_column。用作插入数据源的表和text、ntext或image列的名称。

◆src_text_ptr。指向作为插入数据源使用的text、ntext或image列的文本指针值。

DECLARE @ptrval varbinary(16)

SELECT @ptrval =TEXTPTR(c2)FROM table2

UPDATETEXT table2.c2 @ptrval NULL 0 'This is an inserted text.'

--NULL表示将新数据追加到现有数据值中。表示不删除数据。

事务处理

数据的锁定

SQL Server 支持的隔离级别:

未提交读(最低级别,仅保证不读取物理损坏的数据)

可重复读

可串行读(事务隔离的最高级别,事务之间完全隔离)

SET TRANSACTION ISOLATION LEVEL

{READ UNCOMMITTED

|READ COMMITTED

| REPEATABLE READ

| SNAPSHOT

| SERIALIZABLE

显式事务

启动事务

BEGIN{TRAN|TRANSACTION}

[ { transaction_name | @tran_name_variable }

[ WITH MARK [ 'description' ] ]

]

[ ; ]

结束事务(正常结束)

COMMIT{TRAN|TRANSACTION} [ transaction_name | @tran_name_variable ] ]

[ ; ]

回滚事务(非正常结束)

ROLLBACK{TRAN|TRANSACTION}

[ transaction_name | @tran_name_variable

| savepoint_name | @savepoint_variable ]

[ ; ]

在事务内设置保存点(保存点是如果有条件地取消事务的一部分,事务可以返回的位置。)

SAVE{TRAN|TRANSACTION}{ savepoint_name | @savepoint_variable }

[ ; ]

标记事务:将使事务名置于事务日志中。在进行数据库恢复时,要使用事务日志标记。

不能用于事务的操作:有些操作在对事务回滚时也是不能撤消的。如:创建、修改、删除、恢复、加载数据库;备份、恢复日志文件;更新统计数据;授权操作;磁盘初始化等。

自动提交事务

如果没有使用BEGIN TRANSACTION语句启动显式事务,隐性事务模式也没打开时,系统将以自动提交模式进行操作。在自动提交模式下,当遇到编译错误时,错误所在批处理中的任何语句都不会执行。

隐性事务

隐式事务模式打开后,执行到下列的语句时都会自动启动一个事务:

ALTER TABLE INSERT OPEN CREATE

DELETE REVOKE DROP SELECT

FETCH TRUNCATE TABLE GRANT UPDATE

打开或关闭隐式事务模式:SET IMPLICIT_TRANSACTIONS{ON|OFF}

注意:

因该设置为ON而自动打开的事务,必须在事务结束时将其显示提交或回滚。否则,当用户断开连接时,事务及其所包含的所有数据更改将回滚。

}

编写事务的原则

1.事务保持简短、数据量最小

2.不要在事务处理期间要求用户输入

3.灵活地使用事务隔离级别

事务日志

用户可以根据事务日志检查作用于数据库的操作。事务日志除了帮助用户审查操作外,还有一个重要的作用——用于事务的ROLLBACK(回滚)和REDO(重做)。

事务日志是被存储在数据库的日志文件中的。

事务日志的位置

SELECT name,size,max_size,growth,is_percent_growth,physical_name

FROM sys.database_files

WHERE type_desc='LOG'

管理事务日志

1.避免SQL Server对日志的截断处理。

游标

把对集合的操作转换为对单个记录的处理。通过游标获取记录,并赋给主变量,交主语言处理。

声明游标

SQL 92 Syntax

DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR

FOR select_statement

[ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]

[;]

打开游标

OPEN{{ [ GLOBAL ] cursor_name }| cursor_variable_name }

功能:执行相应的语句,把查询结果取到缓冲区中。

提取行

FETCH [ [ NEXT | PRIOR | FIRST | LAST

| ABSOLUTE { n | @nvar }

| RELATIVE { n | @nvar }

]

FROM

]

{{ [ GLOBAL ] cursor_name }| @cursor_variable_name }

[ INTO @variable_name [ ,...n ] ]

@@FETCH_STATUS()函数报告上一个FETCH语句的状态

@@ROWCOUNT全局变量用来指示受上一语句影响的行数, SET NOCOUNT ON

关闭游标

CLOSE{{ [ GLOBAL ] cursor_name }| cursor_variable_name }

注意:关闭游标并不改变游标的定义,可以再次打开该游标。

释放游标

DEALLOCATE{{ [ GLOBAL ] cursor_name }| @cursor_variable_name }

注意:释放游标就释放了与该游标有关的一切资源,也包括游标的声明,就不能再次使用该游标了。

数据库的高级操作

查看数据库的对象

使用系统目录sys.databases和存储过程sp_databases,sp_helpdb来查看当前实例的所有数据库。

sys.tables

sys.key_constraints

sys.views

sys.sql_modules

sys.procedures

sys.triggers

column_name.OBJECT_ID=OBJECT_ID('column_name')

同一个表中的列的object_id都是相同的,但column_id是不同的。

system_type_id和user_type_id是数据类型的id,可通过该id在sys.types中查询数据类型的具体信息max_length是数据类型的长度

name是列名

TYPE_NAME(system_type_id )

收缩数据库

如将AUTO_SHRINK设置为ON,将自动在后台进行数据库文件的收缩。默认为OFF。

ALTER DATABASE database_demo

SET AUTO_SHRINK ON

使用Windows管理工具【性能】监视服务器

选择【开始】→【设置】→【控制面板】→【管理工具】命令,打开【性能】窗口。

C:\Windows\system32\perfmon.msc

磁盘活动:监视磁盘I/O的表现和性能,PhysicalDisk对象的计数器

除了能够监视上述硬盘、内存、CPU的性能外,还能够监视SQL Server对象和WMI对象,以及其他很多对象:Browser, Cache, IP, LogicalDisk, Paging File, Print Queue, Process, Server, System, Thread 等。

SQL Server Profiler跟踪和资源调控器。

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\profiler.exe。

系统存储过程创建SQL跟踪:sp_trace_create,sp_trace_setevent,sp_trace_setfilter,sp_trace_setstatus

表的高级操作

更改跟踪(避免使用触发器)

变更数据捕获和更改跟踪。这两项技术可以帮助开发者简单地获取更改的数据。

可用来跟踪以下信息:表中具体是哪些行发生了改变;表中的某行是否已更改。

??有什么作用

数据完整性

数据完整性主要包括约束、规则、默认值,以及DML触发器。

实体完整性

通过UNIQUE索引、UNIQUE约束以及PRIMARY KEY约束来实现

域完整性

强制的域完整性限制类型(数据类型)

限制格式(CHECK约束)

值的范围(FOREIGN KEY约束)

CHECK约束

DEFAULT约束

NOT NULL约束

通过FOREIGN KEY和CHECK约束或者外键与主键之间的关系为基础实现。引用完整性确保相应的键值在所有的表中相同。

用户定义完整性

约束

NOT NULL约束、CHECK约束、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束

创建CHECK约束(在单个列上可以创建多个CHECK约束)

ALTER TABLE表名

DROP CONSTRAINT CHECK_name

删除CHECK约束

ALTER TABLE表名

[WITH CHECK|NOCHECK] ADD CONSTRAINT

CHECK_name CHECK(约束表达式)

显式地启用或禁用CHECK约束

ALTER TABLE表名

CHECK|NOCHECK CONSTRAINT CHECK_name

查看已创建的CHECK约束

SELECT*FROM sys.CHECK_constraints

具有UNIQUE约束的列是能够被FOREIGN KEY约束引用的。

定义DEFAULT

ALTER TABLE表名

ADD CONSTRAINT default_name DEFAULT(default_expression)FOR列

视图

视图的类型

标准视图,也就是普通视图,存储的是SELECT查询语句。这类视图主要是组合一个或多个表中的数据,重点是简化数据操作。

索引视图.在第一次使用索引视图时,SQL Server将会把索引视图的结果集存储在数据库中。索引视图可以显著地提高某些查询的性能。索引视图不太适合于经常变更的基本表。

分区视图利用分区的概念,将分布在服务器间的分区数据进行连接而组成视图。

限制

DEFAULT不能与视图相关

视图不能与AFTER触发器相关,INSTEAD OF可以

嵌套视图,不能超过32层

视图的查询中不能包含COMPUTE子句或INTO子句

视图的查询中不能包含ORDER BY子句

视图的查询中不能包含TABLE SAMPLE子句

不能创建临时视图

不能对临时表创建视图

创建视图

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]

[ WITH [ ,...n ] ]

AS select_statement

[ WITH CHECK OPTION ] [ ; ]

::=

{

[ ENCRYPTION ]

[ SCHEMABINDING ]

修改视图

ALTER VIEW的参数和CREATE VIEW相同。

更新视图

sp_refreshview用于更新指定未绑定到架构视图的源数据。

更名使用存储过程sp_rename,但更改对象名的任一部分都可能破坏脚本和存储过程。建议用户不要使用此语句来重命名视图,而是删除视图后以新命名重建视图。

如果视图是基于几个表创建的,那么在通过视图修改其基表时,只能修改一个表的列。

使用视图更新基表的数据,INSERT语句中要插入的列都属于同一个表。

在视图中修改的列必须直接引用参与视图定义的表和列中的基础数据,不能通过其他方式派生。

被修改的列不能出现在GROUPBY、HAVING或DISTINCT子句中。

索引视图的要求

●在使用CREATE TABLE创建基表时,需要使用SET子句,将ANSI_NULLS选项设置为ON

●在执行CREATE VIEW语句时,需要将ANSI_NULLS和QUOTED_IDENTIFIER选项置为ON

●视图中不能引用其他视图,只能引用基表

●视图引用的基表必须与视图位于同一数据库中,而且所有者相同

●用户定义函数的数据访问属性必须为NOSQL,而外部访问属性必须为NO

●视图中的SELECT语句不能包含下列语法元素:指定列不能用*号;派生表;公用表表达式;UNION、EXCEPT、

INTERSECT;子查询;外连接和自连接;TOP子句;ORDER BY子句;DISTINCT关键字;AVG等聚集函数;COMPUTE 子句;CROSS APPLY或OUTER APPLY;PIVOT或UNPIVOT运算符。

CREATE INDEX需要符合以下要求:

?执行CREATE INDEX的用户必须是视图的所有者

?执行CREATE INDEX语句时,需要将下列选项置为ON:ANSI_NULLS、ANSI_PADDING、ANSI_WARNINGS、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER

?将NUMERIC_ROUNDABORT置为OFF

?将IGNORE_DUP_KEY置为OFF

?不能使用TEXT、NTEXT或IMAGE列

CREATE UNIQUE CLUSTERED INDEX index_1

ON indexview_1(id ASC)

存储过程

存储过程不支持的语句:

CREATE AGGREGATE:--自定义聚集函数

CREATE RULE--创建规则(规则已被CHECK取代)

CREATE DEFAULT:--创建默认对象

CREATE SCHEMA:--创建架构

CREATE(ALTER)FUNCTION:--创建修改函数

CREATE(ALTER)TRIGGER:--创建修改触发器

CREATE(ALTER)PROCEDURE:--创建修改存储过程

CREATE(ALTER)VIEW:--创建修改视图

SET PARSEONLY:--检查语法,返回错误,但不编译和执行语句

SET SHOWPLAN_ALL:--不执行,而是返回有关语句执行情况,并估算语句对资源的需求

SET SHOWPLAN_TEXT:--不执行,返回计划文本

SET SHOWPLAN_XML:--不执行,返回计划XML

USE :--引用数据库

限制和特点:

在存储过程中,不但可以引用临时表,还可以创建临时表。不过,如果用户在存储过程中创建的是本地临时表,那么该本地临时表会在存储过程执行后,被自动删除。

如果存储过程A调用存储过程B,那么B可以访问和使用A中创建的所有对象(包括临时表)。

存储过程中可以使用参数,但不能超过个。

存储过程中可以使用局部变量,个数不限。

存储过程最大可以是128MB。

在存储过程中,SELECT等语句使用的对象最好带架构(如dbo),如果用户不显式地给出架构,系统将会已该存储过程的架构来引用对象。

存储过程中,操作SELECT、INSERT、UPDATE、DELETE都需要相应的权限。

创建

CREATE{PROC|PROCEDURE} [schema_name.] procedure_name [ ; number ]

[ { @parameter [ type_schema_name. ] data_type }

[ VARYING ] [ = default ] [ OUT | OUTPUT ]

] [ ,...n ]

[ WITH [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE_AS_Clause ] [ ,...n ] ]

AS{ [ BEGIN ] statements [ END ] [ ...n ] }

--一般来说,CREATE PROCEDURE要放在两个GO之间。

执行

{EXEC|EXECUTE}

{

[ @return_status = ]

{ module_name [ ;number ] | @module_name_var }

[ [ @parameter = ] {value

| @variable [ OUTPUT ]

| [ DEFAULT ]

}

]

[ ,...n ]

[ WITH RECOMPILE ]

}

存储过程和触发器在下次运行时重新编译

SP_RECOMPILe [ @OBJNAME = ] 'object'

当前数据库中的存储过程

SELECT https://www.doczj.com/doc/069084638.html, AS'架构名',https://www.doczj.com/doc/069084638.html, AS'存储过程名',https://www.doczj.com/doc/069084638.html, AS'参数名',

TYPE_NAME(https://www.doczj.com/doc/069084638.html,er_type_id)AS'数据类型',

pa.default_value AS'默认值',pa.max_length AS'长度'

FROM sys.procedures AS p

LEFT JOIN sys.schemas AS s ON p.schema_id=s.schema_id

LEFT JOIN sys.parameters AS pa ON pa.object_id=p.object_id

管理存储过程

当采用删除并重新创建存储过程时,原存储过程的权限都将丢失;当使用ALTER PROCEDURE语句修改存储过程时,该存储过程的权限并不发生改变,当然也不会影响与存储过程有依赖关系的其他数据库对象.

函数

受限的操作

?对数据库中表的修改

?对不在函数中的其他游标进行操作

?发送电子邮件

?修改目录

可以使用的语句

?DECLARE

?控制语句(TRY CATCH除外)

?SELECT语句

?使用INSERT、UPDATE、DELETE修改局部变量

?EXECUTE

表值函数

返回值是一个表

创建多语句表值函数:

CREATE FUNCTION function_name

([{@parameter_name data_type[=default]}[,…n]])

RETURNS @return_variable TABLE

[WITH [ENCRYPTION]|[EXECUTE_As_Clause][,…n]]

[AS]

BEGIN

INSERT INTO @return_variable --在函数体中,可以将所有要通过函数名返回的记录插入到该变量中。

function_body

RETURN

END

内联表值函数

一种特殊的多语句表值函数,即仅含一条SELECT语句。

CREATE FUNCTION

(

<@param1,sysname, @p1> [,…n]

)

RETURNS TABLE

AS

RETURN

(

SELECT 0

)

GO

标量值函数

只返回一个值。分为多语句标量值函数和内联标量值函数。其中,内联标量值函数没有函数体,而多语句标量值函数的函数体定义在BEGIN...END块中。

CREATE FUNCTION [ schema_name. ] function_name

( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type

[ = default ] [ READONLY ] } [ ,...n ]

]

)

RETURNS return_data_type --不能是非标量值的数据类型,如TABLE。

[ WITH [ ,...n ] ]

[ AS ]

BEGIN

function_body

RETURN scalar_expression --标量值的表达式

END

系统聚合函数

聚合函数只能用于下述位置,即SELECT语句、COMPUTE或COMPUTE BY子句、HAVING子句。

BINARY_CHECKSUM(*|<表达式列表>)

CHECKSUM(*| expression [ ,...n ] )--CHECKSUM 用于生成哈希索引。

CHECKSUM_AGG( [ ALL | DISTINCT ] expression )--空值将被忽略。后面可以跟随OVER 子句。

COUNT({ [ [ ALL | DISTINCT ] expression ] |*})

MIN( [ ALL | DISTINCT ] expression )

MAX( [ ALL | DISTINCT ] expression )

VAR( [ ALL | DISTINCT ] expression )--返回指定表达式中所有值的方差。后面可能跟随OVER 子句。STDEV( [ ALL | DISTINCT ] expression )--返回指定表达式中所有值的标准偏差。后面可能跟随OVER 子句。

系统数学函数

ABS( numeric_expression )

CEILING( numeric_expression )--返回大于或等于指定数值表达式的最小整数。

Floor()( numeric_expression )

Pi()--返回值类型是FLOAT

Degrees( numeric_expression )

Exp( numeric_expression )--返回指定的float 表达式的指数值。

POWER( float_expression , y )--f^y

ROUND( numeric_expression , length [ ,0|1 ] ) --返回一个数值,舍入到指定的长度或精度。/1:截断Sqrt( numeric_expression )

SQUARE( float_expression )

同义词

同义词支持的对象类型分为4大类,即表、视图、存储过程以及函数(除聚合函数外)。

创建

CREATE SYNONYM schemaName.sy_name

FOR [serverName\instanceName].db_demo.schemaName.objName

管理同义词

SELECT name,type,type_desc,base_object_name

FROM sys.synonyms

删除

DROP SYNONYM schemaName.syName

触发器

可分为:登录触发器、DDL触发器、DML触发器。

创建SQL登录触发器

CREATE TRIGGER trigger_name

ON ALL SERVER

[WITH [ENCRYPTION|EXECUTE AS][,…n]

FOR LOGON

AS

{sql_statement [][,…n]}

例:

USE master

GO

CREATE TABLE database_demo.dbo.tb_logintrigger(id INT,name NCHAR(256),logintime DATETIME) GO

CREATE TRIGGER login_trigger

ON ALL SERVER WITH EXECUTE AS…PYW\Administrator?

AS

BEGIN

INSERT INTO database_demo.dbo.tb_logintrigger(id,name,logintime)

SELECT session_id,original_login_name,login_time

FROM sys.dm_EXEC_sessions

WHERE original_login_name=…PYW\Administrator?

COMMIT

END

更改登录触发器

ALTER TRIGGER trigger_name后面的与create trigger一样

删除登录触发器

DROP TRIGGER trigger_name[,…n]

ON ALL SERVER

登录触发器的常见错误,此时必须使用DAC来连接SQL Server服务来删除、禁用或修改该登录触发器。

DDL 触发器

DLL触发器的执行时机是其关联的操作结束以后至下一个操作开始之前。

用途:

?处理对数据库对象结构的更改。

?在数据库对象的结构发生更改后,执行处罚期内定义的操作。

?可以记录数据库对象结构的具体更改,以及相应的SQL Server事件。

Trigger on a CREATE,ALTER,DROP,GRANT,DENY,REVOKE,or UPDATE STATISTICS statement (DDL Trigger)

CREATE TRIGGER trigger_name

ON{ALL SERVER|DATABASE}

[ WITH [ ,...n ] ]

{FOR| AFTER }{ event_type | event_group } [ ,...n ]

AS{ sql_statement [ ; ] [ ,...n ] }

DML触发器类型

执行过程如下

(1)SQL Server将创建inserted表(INSERT和UPDATE语句)或deleted表(DELETE语句)

(2)SQL Server执行触发操作。

(3)SQL Server执行INSTEAD OF触发器。该触发器直接位于触发操作之后,用于完成一些与触发操作类似的功能,因此称为“替代”触发器。其实,INSTEAD OF触发器的出现是为了完善和拓展触发器的部分功能。不过,最好不要在不熟悉的情况下使用INSTEAD OF触发器。

(4)SQL Server处理约束。这些约束就是前面数据完整性里介绍的内容。如果INSERT、UPDATE或DELETE等语句不能通过约束的限制,那么SQL Server将撤销前面执行INSTEAD OF触发器的操作,并且就此退出此次DML操作,而不再执行下面的AFTER触发器。

(5)SQL Server执行AFTER触发器。

DML触发器的创建语句

CREATE TRIGGER [ schema_name . ]trigger_name

ON{table|view}

[ WITH [ ENCRYPTION ] [, EXECUTE AS Clause ]]

{ AFTER | INSTEAD OF }

{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }

[ WITH APPEND ]

[ NOT FOR REPLICATION ]

数据库原理与应用复习资料全

数据库原理与应用2018年春季学期复习资料 (仔细看复习资料,没有答案的题目,请自己解答) 一、概念题(自己准备答案) 1、封锁 封锁就是事物T在对某个数据对象,例如表、记录等操作之前,先向系统发出请求,对其加锁。 加锁后事物T就对该数据对象有了一定的控制,在事物T释放它的锁之前,其他的事务不能更新此数据对象,封锁是实现并发控制的一个非常重要的技术。封锁包含了排它锁和共享锁 2、游标 a允许定位在结果集的特定行 b从结果集的当前位置检索一行或一部分行 c支持对结果集中当前位置的行进行数据修改 d提供不同级别的可见性支持 3、并发控制 是指当同时有多个事务在执行时,为了保证一个事物的执行不受其他事物的干扰所采取的措施,并发控制的的主要方法是加锁。为了保证并发执行的事务是正确的,一般要求事物遵守两段锁协议。 4、关系完整性规则 是对关系的某种约束条件,用于保证关系数据库中数据的正确性和可靠性,它包含了实体完整性规则、参照完整性规则、域完整性规则。 5、DBMS的主要功能。 主要功能包括数据定义功能、数据操作功能、数据库运行管理功能、数据库的建立和维护功能、学习资料

数据通讯接口功能、数据组织、存储和管理功能。 6、数据库设计的基本步骤。 数据库设计的基本步骤分为系统需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施阶段、数据库运行和维护阶段 7、简述产生死锁的原因以及预防死锁的三种方法。 一个事物若申请锁未被批准,则需要等待其他事务释放锁,当事务之前出现循环等待时,如果不加干预,则会一起等待下去,从而产生死锁。 预防死锁的方法: 每个事物一次将所有要使用的数据全部加锁。 预先对数据对象规定一个封锁顺序,所有事务都按这个顺序封锁 当事物申请锁未被批准时,不等待加锁而是让一些事物回滚重新执行。 8、请画出数据库系统的组成结构图。 9、最小函数依赖集 函数依赖集F如果满足F中的每一个函数依赖的右部都是单个属性,对F中任一函数依赖X->A,F-{X->A}都不与F等价,对于F中的任意函数依赖X->A,{F-{X->A}}U{Z->A都不与F等 学习资料

数据库重点整理

所有内容主要针对期末考试卷内容,也具有一定数据库这门课程的重点指向性。 所有写的内容为老师期末考试之前统一带着复习时所说的重点 没有写的或者空着的就是老师当时没说的 蓝色字体表示比较重要的专业名词 红色字体表示重要的程度 第一章: 1.数据模型的三个要素 数据结构,数据操作,完整性约束 2.数据库领域常用的逻辑模型 层次网状关系,最常用的是关系数据模型 3.E-R图是一定要掌握的,一定要会画 实体-矩形框联系-菱形框 画E-R图时要注意几个点: a.每一个实体一定要画上属性 b.联系和联系之间是一对一还是多对多一定要画上

4.三级模式结构 外模式模式内模式 哪两个映像保证了哪两个独立性这个一定要清楚 怎么保证的 外模式就是我们说的子模式,也就是数据库里的视图 一个数据库里的模式有1个,内模式有?个,外模式有多个 第二章: 1. 什么叫关系的域 简单来说,就是一个属性的取值范围,它的取值是整型还是字符串型 2. 什么叫笛卡儿积 要会求笛卡儿积,其他的像选择,投影,自然连接等都要会求,看清楚题目是求等值连接还是自然连接,这两个是不一样的 3. 什么叫关系 关系的元组是什么,属性是什么 4.提到关系有一组码的概念一定要清楚 候选码主码外部码这三个码的概念非常重要

候选码:它能够唯一的标识出整个元组来,候选码不是只有一个属性,有可能是一 个或多个属性,候选码的属性不能是空值 主码:多个候选码中选定一个作为主码 外部码:一个属性它在当前这个关系中不是码,但是它和另外一个关系当中的主码 相对应,我们就说这个属性是当前这个关系的一个外部码。 外部码与参照完整性密切相关 在外部码中要知道哪一个是参照关系,哪一个是被参照关系 外部码的取值约束:外部码的取值不是任意的,或者为空,或者为所参照关系的主码的某一个值 全码:所有的属性全部加在一起才能当作码,其中任一部分都不能构成码的叫全码在多值依赖里全码的例子比较多 5.关系数据模型的第二个要素关系数据操作我们分为三大类 关系代数关系演算SQL 关系代数是考察的重点 关系代数的两种考察方法:1.考计算题 2.考表达式 8种运算符:4种集合运算符(并,交,差,笛卡儿积)这四个求结果一定要会求 求结果时先把属性列写出来。 4种专门的关系运算符(选择,投影,连接,除)符号不要写错 选择:选出来满足条件的元组(从行的角度来进行运算)

数据库考点整理

数据库应用 第一章数据库系统概述 1、信息化三项技术:计算机技术、通信技术、控制技术 2、数据处理发展的三阶段: (1)人工管理阶段(应用程序与数据一对一的关系) 不足:没有独立性、数据缺少共享、数据冗余很大 (2)文件管理阶段(应用程序与数据文件之间的接口)、 优点:有一定的独立性 不足:独立性不强、共享性差、冗余量大 (3)数据库管理阶段(多个应用程序对应一个数据库) 优点:完全独立、共享性强、冗余量少 3、数据库技术4个概念——知道相互间的关系 (1)数据(数字化)Data (2)数据库(文件化)Database(DB) (3)数据库管理系统Database Management System(DBMS) (4)数据库系统Database System(DBS) 注意:数据库系统包括数据库管理系统、数据库和数据库管理员 4、数据库系统的特点 (1)数据共享性好(可以减少冗余,节约存储空间) (2)数据独立性强 (3)数据结构化(数据是按一定的逻辑结构存放的) (4)统一的数据控制功能(包括安全性控制措施、完整性控制措施、并发操作控制措施) 5、数据库系统的组成 6、数据库系统的抽象级别 (1)逻辑模式:描述存储在数据库中的所有关系 (2)物理模式:描述逻辑模式中的关系在磁盘和磁带等二级存储设备上是如何实际存储的 (3)外模式:用户所看到的可使用的那个模式 注意:任何给定的数据库只有一个逻辑模式和物理模式,但可有多个外模式 7、数据模型——熟记三种常用模型的特点 数据模型描述的三部分:数据结构(基础)、数据操作、数据约束 (1)概念模型——用于数据库设计 (2)逻辑模型和物理模型——层次模型、网状模型、关系模型、面向对象模型(了解)、对象关系模型(了解) 熟悉三种常用的数据模型: 层次模型——用树形结构表示(根结点、父结点、子结点) 网状模型——用网状结构表示 关系模型(Access是基于关系模型个数据库管理系统)

数据库期末考试试题及答案

数据库期末考试试题及答案 一、选择题(每题1分,共20分) 1(在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。 在这几个阶段中,数据独立性最高的是( A )阶段。 A. 数据库系统 B. 文件系统 C. 人工管理 D.数据项管理 2(数据库三级视图,反映了三种不同角度看待数据库的观点,用户眼中的数据库称为(D)。 A. 存储视图 B. 概念视图 C. 内部视图 D. 外部视图 3(数据库的概念模型独立于(A)。 A. 具体的机器和DBMS B. E-R图 C. 信息世界 D. 现实世界 4(数据库中,数据的物理独立性是指(C)。 A. 数据库与数据库管理系统的相互独立 B. 用户程序与DBMS的相互独立 C. 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立 5(关系模式的任何属性(A)。 A. 不可再分 B. 可再分 C. 命名在该关系模式中可以不惟一 D.以上都不是 6(下面的两个关系中,职工号和设备号分别为职工关系和设备关系的关键字: 职工(职工号,职工名,部门号,职务,工资) 设备(设备号,职工号,设备名,数量) 两个关系的属性中,存在一个外关键字为( C )。

A. 职工关系的“职工号” B. 职工关系的“设备号” C. 设备关系的“职工号” D. 设备关系的“设备号” 7(以下四个叙述中,哪一个不是对关系模式进行规范化的主要目的( C )。 A. 减少数据冗余 B. 解决更新异常问题 C. 加快查询速度 D. 提高存储空间效率 8(关系模式中各级范式之间的关系为( A )。 A. B. C. D. 9(保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指 数据的( A )。 A. 安全性 B.完整性 C.并发控制 D.恢复 10(事务的原子性是指( B )。 A. 事务一旦提交,对数据库的改变是永久的 B. 事务中包括的所有操作要么都做,要么都不做 C. 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D. 事务必须使数据库从一个一致性状态变到另一个一致性状态 11(下列哪些运算是关系代数的基本运算( D )。 A. 交、并、差 B. 投影、选取、除、联结 C. 联结、自然联结、笛卡尔乘积 D. 投影、选取、笛卡尔乘积、差运算 12(现实世界“特征” 术语, 对应于数据世界的( D )。 A(属性 B. 联系 C. 记录 D. 数据项 13(关系模型中3NF是指( A )。 A.满足2NF且不存在传递依赖现象 B.满足2NF且不存在部分依赖现象

武汉大学空间数据库复习资料整理

《空间数据库原理》 第一章数据库 1、空间数据库:①提供结构用于存储和分析空间数据②空间数据由多维空间的对象组成③在标准数据库中存储空间数据需要大量的空间,从一个标准数据库中检索查询空间数据需要很多时间并且很累赘,通常导致很多错误。 2、DBMS:(数据的操作系统)一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。SDBMS:增加了处理空间数据功能的DBMS。①在它的数据模型中提供空间数据类型和查询语言②至少在执行时支持提供空间数据类型:空间索引;空间链接有效的算法。 在地理信息系统中为什么要研究专门的空间数据库系统? 1.空间数据库能提供结构存储和空间数据分析 2.空间数据库包含多面空间的对象 3.在标准数据库中存储空间数据会需要过多的空间 4.标准数据库的查询反馈和空间数据分析会消耗过多时减并且留下大量错误空间 5.空间数据库能提供更多有效率的存储和空间数据分析 3、哈希(Hash)函数:一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 质数除余法(直接取余法):f(x):=x mod maxM ;maxM一般是不太接近2^t的一个质数。 乘法取整法:f(x):=trunc((x/maxX)*maxlongit) mod maxM,主要用于实数。 平方取中法:f(x):=(x*x div 1000 ) mod 1000000);平方后取中间的,每位包含信息比较多。 第二章数据库基本原理 1、数据模型Data Model:关于数据基础或对象以及他们之间的关系的抽象描述被表示在一个数据库中。 3、概念数据模型:也称语义模型,关于实体和实体间联系的抽象概念集,用统一的语言描述、综合、集成的用户视图。 2、数据字典:是指对数据库的内容包括数据项和属性码定义,是元数据的重要组成部分。(是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。) Metadata:是描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。 3、数据库设计和实现:①需求分析②概念数据建模③逻辑建模(参考DBMS和基础数据模型)④物理建模或者实现(参考物理存储和电脑环境)。 需求调查:根据数据库设计的主题对用户的需求进行调查,了解用户特点和要求,取得设计者与用户对需求的一致看法。需求分析:指的是在创建一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。 4、E-R图:描述对象类型之间的关系,是表示概念模型的一种方式。 第三章基本空间概念 1、凸多边形:把一个多边形任意一边向两方无限延长成为一条直线,如果多边形的其他各边均在此直线的同旁,那么这个多边形就叫做凸多边形。 2、点集拓扑:一个基于相邻关系定义拓扑学空间的方法。 3、大圆距离:大圆距离指的是从球面的一点A出发到达球面上另一点B,所经过的最短路径(圆弧)的长度。 曼哈顿距离:两个点上在标准坐标系上的绝对轴距之总和。 4、欧式空间(欧几里德空间):空间的坐标模型。作用:能将空间属性转化为以实数为元组的属性;坐标系包括一个确定的原点和在原点交叉的一对正交轴线。

最新山大数据库简答题整理

1、事务的定义及其特性 答:事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 事务的ACID特性: 原子性(Atomicity) 事务中包含的所有操作要么全做,要么全不做 一致性(Consistency) 事务的隔离执行必须保证数据库的一致性 隔离性(Isolation) 系统必须保证事务不受其它并发执行事务的影响 持久性(Durability) 一个事务一旦提交之后,它对数据库的影响必须是永久的。 2. 完整性约束: 数据库完整性( Database Integrity )是指数据库中数据的正确性、有效性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。 1、实体完整性:要求每个关系模式有且仅有一个主码,每个主码的值必须唯一,而且 不能为空。 2、域完整性:数据库表中的列必须满足某种特定的数据类型或约束。其中 约束又包括取值范围、精度等规定。表中的CHEC、KFOREIGNKEY 约束 和DEFAUL T NOT NUL定义都属于域完整性的范畴。 3、参照完整性:参照的完整性要求关系中不允许引用不存在的实体。当更新、删 除、插入一个表中的数据时,通过参照引用相互关联的另一个表中的数 据,来检查对表的数据操作是否正确。 3. DBMS 数据库管理系统(Database Management System) 是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBM访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBM提供数据定义语言DDL( Data Definition Language )和数据操作语言DML( Data Manipulation Language ),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。 4. 什么是数据独立性?数据库系统如何实现数据独立性?答:数据独立性是指应用程序和数据之间相互独立、互不影响,及数据结构的修改不会引起应用程序的修。数据独立性包括物理独立性和逻辑独立性。 物理独立性是指数据库物理结构的变化时不必修改现有的应用程序。逻辑独立性是指数据库逻辑结构变化时不需要改变应用程序。 数据独立性是由DBM的三级模式和二级映像来实现的。 数据库系统通常采用外模式、模式和内模式三级结构,数据库管理系统在这三级模式之间提供了外模式/模式和模式/内模式两层映像。当整个系统要求改变模式时,由DBM对各个外模式/模式映像作相应的修改,使外模式保持不变,从而使基于外模式的应用程序保持不变,从而保证了数据的逻辑独立性。当数据的存储结构改变时,由DBM对模式/内模式映像进行 修改,可以使模式保持不变,从而使应用程序也不必改变,保证了数据的物理独立性。

自学考试 电子商务数据库技术 11289 重点整理 考试必过

第一章电子商务中的数据库技术 电子商务:狭义,是发生在开放网络上包含企业之间、企业和消费者之间的商业交易;广义,除了电子交易外,还包括利用计算机网络技术进行的全部商业活动。电子商务的常见类型:1、企业经营2、网上银行3、网上商店和网上购物4、网络服务5、其他(与电子商务有关的认证机构、海关等)。电子商务应用平台的三个支柱:1、社会人文环境2、自然科技环境3、电子商务技术内容。互联网络上的硬件主要包括:工作站、服务器和终端、基于计算机的电话设备、集线器、数字交换机、路由器、调制解调器、电缆调制解调器和光电耦合器等。网络通信设施在电子商务中的作用:基础通信网络是电子商务的硬件基础设施,承担着电子商务信息传输的任务。多媒体:是文本、声音、图像的综合。电子商务摆脱传统交易方式的关键:建立信息的虚拟组织,即将Web与数据库集成,主要有三种形式:1、运用Web发布数据2、运用Web共享数据3、用数据库驱动Web站点。数据仓库:指大量散布在网络数据库中的数据进行组织,使之能形成一个可被检索、搜索、分析和报告的商业信息清单,其核心是关系型数据库。企业建立电子商务网站的步骤:1、选择Internet服务提供商(ISP)和数据库服务提供商(DSP)2、注册域名和选择接入方式3、网页设计制作4、创建和维护数据库5、整合数据库和网站6、在Web 上使用数据库。企业选择互联网服务提供商(ISP)要注意的问题:1、ISP能够提供的技术条件2、ISP能够提供的网络设施与结构3、ISP能够提供的服务种类、技术实力、服务质量和信用4、ISP综合使用成本。域名:是企业在Internet上的地址,具有商标的性质。数据库软件的几种类型:1、桌面型,如Microsoft Access、Xbase 等2、中小型面向对象型3、大型分布型,如DB2、Oracle、SQL Server等企业及数据库产品4、数据仓库型。数据库设计:指在现有的数据库管理系统上建立数据库的过程。数据库设计的内容:对于一个给定的环境,进行符合应用语义的逻辑设计,以及提供一个确定存储结构的物理设计,建立实现系统目标并能有效存取数据的数据模型。电子商务Web站点的数据库特征:1、对电子商务运营的各个方面确保数据安全2、对电子商务交易过程进行管理3、对客户确认已经完成,但由于硬件或软件故障而未能执行的交易可以弥补。创建网络数据库必须满足的条件:1、符合企业电子商务的需要2、能被某个现有的数据库管理系统所接受3、具有较高的质量。脚本语言在数据库驱动的网站上的基本用途:1、处理用户在表单中输入的数据,编辑、复制他们到隐含域等2、增强界面效果3、控制表单的提交和生成复杂的URL请求。 第二章数据库系统概论 数据库:是以某种方式组织起来,是指可以检索和利用的数据的集合。数据管理:是数据库的核心任务,其内容包括对数据的分类、组织、编码、储存、检索和维护。数据管理经理的三个阶段:1、人工管理阶段2、文件系统阶段3、数据库系统阶段。人工管理阶段:用于20世纪50年代以前,采取批处理方式,特点是数据用完后不保存原始数据。也不保存计算结果;没有专门对数据进行管理的软件系统;数据与程序不具有独立性。文件系统阶段:用于20世纪50年代后期到60年代中期,不仅能批处理,还能够联机实时处理,特点是数据需要长期保留在外存上供反复使用;程序和数据之间有了一定的独立性;文件形式已经多样化,对文件的访问可以是顺序访问也可以是直接访问。数据库管理系统阶段:始于20世纪60年代后期,保证了数据和程序的逻辑独立性,保证数据的安全和完整性。数据库管理系统的发展分为三个阶段:1、第一代数据库管理系统,即层次数据库管理系统和网状数据库管理系统,特点是支持三级抽象模式的体系结构;用存取路径来表示数据之间的联系;数据定义语言和数据操纵语言相对独立;数据库语言采用过程性语言2、第二代数据库管理系统,即关系数据库管理系统,特点是概念单一化,数据及数据间的联系都用关系来表示;以关系代数为理论基础;数据独立性强;数据库语言采用说明性语言,简化了用户编程难度3、第三代数据库管理系统,即面向对象数据库管理系统,特点是支持包括数据、对象和知识的管理;在第二代的基础上引入了新技术;对其他系统开放,有良好的可移植性、可连接性、可扩充性和可互操作性。数据模型:是数据库管理系统的数学形式框架,是用来描述数据的一组概念和定义。数据模型的内容:1、数据的静态特征2、数据的动态特征3、数据的完整性约束。数据库管理系统的数据模型分类:1、面向值的数据模型2、面向对象的数据模型。数据模型的种类:1、概念数据模型2、逻辑数据模型3、物理数据模型。实体:客观存在并可相互区别的事物。实体标识符:某个属性或属性组合的值能够唯一的标识出实体集中的每一个实体,则可以选择该属性或属性组合作为实体标识符。E-R模型:E-R图所描述的现实世界的信息结构。E-R图的三要素:1、实体(型),用矩形框表示2、属性,用椭圆表示3、实体之间的联系,用菱形框表示。实体间的联系抽象化后分为三种类型:1、一对一联系2、一对多联系3、多对多联系4、实体---联系图(E-R

数据库期末试卷

浙江工业大学 《数据库原理及应用》 一、填空题 1、SELECT Name,Tele FROM Person 的作用是。 2、数据独立性是指数据与应用程序之间不存在相互依赖关系,分为 和。 3、用树型结构表示实体类型及实体间联系的数据模型称为层次模 型。 4、提供数据库定义、数据装入、数据操纵、数据控制和DB维护功能的软件称为 _ 数据管理系统 _。 5、在关系代数中专门的关系运算包括、、、除等。 6、关系数据库的第一范式保证列的原子 性。 7、一个数据库由若干个表组成,关系的元组称为,属性称为。 8 久性。 9、数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。 10、并发操作带来的数据不一致性包括三类:丢失覆盖修改、 不可重复读、 读”脏数据。 11、管理信息系统的四种结构模式为:单机模式、、 和。 12、数据管理技术经历了:人工管理阶段、文件管理阶段以及数据库系统阶段 三个发展阶段。

14、实体之间的联系按照联系方式的不同可分为一对一或1:1 、 一对多或1:n 、___ 多对多或m:n 。 15、E-R图中包括__实体、____ 属性和联系三种基 本图素。 16、数据模型由三部分组成:模型结构、数据操作、数据约束条件 。 17、事务必须具有的四个性质是:原子性、一致性、隔离性和持久 性。 18、基本的封锁类型有排它锁和共享锁两种。 19、DB并发操作通常会带来三类问题,它们是丢失修改、不一致分析和读脏数据。 20、数据库系统可能发生的故障有:事务内部的故障系统故障、和介质故障等。计算机病毒 21、按转储时间来分,数据转储可分为静态转储和动态转储两种方式。 22、列举三种管理信息系统开发的方法:结构化开发方法、__原型方 法_ _____、 面向对象方法。 23、一个学生可以同时借阅多本图书,一本图书只能由一个学生借阅,学生和图书之间的联系为一对多联系。 二、判断题 1、关系中允许有重复的元组,但是不允许有重复的属性名。() 2、关系代数的运算对象是关系,但运算结果不是关系。() 3、连接操作可以多个表之间进行,也可以在一个表内进行。() 4、触发器是一种很有效的保证数据库完整性的手段。() 5、对于关系R、S,如果R-S的元组数是0,则说明R中包含了S的所有元组。 ()6、设关系R、S的元组数分别是20、30,则R和S连接的元组数不可能超过50。 () 7、数据库中的每一个基本表与外部存储器上一个物理文件对应。() 8、一个数据库可以有多个外模式和多个内模式。() 9、概念模型向关系模型转换时,实体间的n:m联系可以有两种转换方法,一

数据库复习参考资料全

复习参考资料 一、选择题: 1. 数据库系统是采用了数据库技术的计算机系统,数据库系统由数据库、数据库管理系统、应用系统和()。 A. 系统分析员 B. 程序员 C. 数据库管理员 D. 操作员 2. 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。 A. DBS包括DB和DBMS B. DBMS包括DB和DBS C. DB包括DBS和DBMS D. DBS就是DB,也就是DBMS 3. 下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。I.人工管理阶段II.文件系统阶段III.数据库阶段 A. I 和II B. 只有II C. II 和III D. 只有I 4. 下列四项中,不属于数据库系统特点的是()。 A. 数据共享 B. 数据完整性 C. 数据冗余度高 D. 数据独立性高 5. 数据库系统的数据独立性体现在()。 A. 不会因为数据的变化而影响到应用程序 B. 不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C. 不会因为存储策略的变化而影响存储结构 D. 不会因为某些存储结构的变化而影响其他的存储结构 6. 描述数据库全体数据的全局逻辑结构和特性的是()。 A. 模式 B. 内模式 C. 外模式 D. 以上三种 7. 要保证数据库的数据独立性,需要修改的是()。 A. 模式与外模式 B. 模式与内模式 C. 三级模式之间的两层映射

D. 三层模式 8. 要保证数据库的逻辑数据独立性,需要修改的是()。 A. 模式与外模式之间的映射(应该是外模式与模式) B. 模式与内模式之间的映射 C. 模式 D. 三级模式 9. 用户或应用程序看到的那部分局部逻辑结构和特征的描述是()模式。 A. 模式 B. 物理模式 C. 子模式(也叫外模式,用户模式) D. 内模式 10. 下述()不是DBA数据库管理员的职责。 A. 完整性约束说明 B. 定义数据库模式 C. 数据库安全 D. 数据库管理系统设计 11. 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是()。 A. 层次模型(ABC都是逻辑模型的) B. 关系模型 C. 网状模型 D. 实体-关系模型(ER图) 12. 区分不同实体的依据是()。 A. 名称 B. 属性(准确的说应该是属性集,马) C. 对象 D. 概念 13. 关系数据模型是目前最重要的一种数据模型,它的三个要素分别是()。 A. 实体完整性、参照完整性、用户自定义完整性 B. 数据结构、关系操作、完整性约束 C. 数据增加、数据修改、数据查询 D. 外模式、模式、内模式 14. 在()中一个结点可以有多个双亲,结点之间可以有多种联系。 A. 网状模型 B. 关系模型 C. 层次模型 D. 以上都有 15. ()的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 A. 网状模型 B. 关系模型 C. 层次模型 D. 以上都有 16. 数据库系统与文件系统的主要区别是()。 A. 数据库系统复杂,而文件系统简单

(整理)SQLServer数据库基本知识点.

SQL Server 数据库基本知识点一、数据类型

二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4

数据库期末考试试题及答案

一、选择题(每题1分,共20分) 1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是( A )阶段。 A. 数据库系统 B. 文件系统 C. 人工管理 D.数据项管理 2.数据库三级视图,反映了三种不同角度看待数据库的观点,用户眼中的数据库称为(D)。 A. 存储视图 B. 概念视图 C. 内部视图 D. 外部视图 3.数据库的概念模型独立于(A)。 A.具体的机器和DBMS B. E-R图 C. 信息世界 D. 现实世界 4.数据库中,数据的物理独立性是指(C)。 A. 数据库与数据库管理系统的相互独立 B. 用户程序与DBMS的相互独立 C. 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立 5.关系模式的任何属性(A)。 A. 不可再分 B. 可再分 C. 命名在该关系模式中可以不惟一 D.以上都不是 6.下面的两个关系中,职工号和设备号分别为职工关系和设备关系的关键字: 职工(职工号,职工名,部门号,职务,工资) 设备(设备号,职工号,设备名,数量) 两个关系的属性中,存在一个外关键字为( C )。 A. 职工关系的“职工号” B. 职工关系的“设备号” C. 设备关系的“职工号” D. 设备关系的“设备号” 7.以下四个叙述中,哪一个不是对关系模式进行规X化的主要目的( C )。 A. 减少数据冗余 B. 解决更新异常问题 C. 加快查询速度 D. 提高存储空间效率 8.关系模式中各级X式之间的关系为( A )。 A. B. C. D. 9.保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指数据的( A )。 A. 安全性 B.完整性 C.并发控制 D.恢复 10.事务的原子性是指( B )。 A. 事务一旦提交,对数据库的改变是永久的 B. 事务中包括的所有操作要么都做,要么都不做 C. 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D. 事务必须使数据库从一个一致性状态变到另一个一致性状态 11.下列哪些运算是关系代数的基本运算( D )。 A. 交、并、差 B. 投影、选取、除、联结 C. 联结、自然联结、笛卡尔乘积 D. 投影、选取、笛卡尔乘积、差运算

数据库期末考试试卷A卷.docx

数据库期末考试试卷 A 卷 时间: 90 分钟总分: 100 分 题次一( 50 分)二( 40 分)三( 10 分)总( 100 分) 得分 注:请大家在试卷上注明自己的学号。 :一、选择题。(每题 2 分,共50 分) 名题号12345678910 姓答案 题号11121314151617181920 答案 题号2122232425 答案 1、 ACCESS 数据库是()。 A 、层状数据库 B、网状数据库 C、关系型数据库 D、树状数据库 2、在 ACCESS 数据库中,数据保存在()中。 A 、窗体 B、查询 :C、报表 号D、表 学3、数据库系统的核心是() A 、用户 B、数据 C、数据库管理系统 D、硬件 4、关系数据库中,一个关系代表一个() A 、表 B、查询 C、行 D、列 5、 ACCESS 数据库文件的扩展名是()。 A 、 DBF :B、 DBT C、 M DF 级 D、 MDB 班 6、关系类型中的“一对多”指的是()。 A 、一个字段可以有许多输入项 B、一条记录可以与不同表中的多条记录相关 C、一个表可以有多个记录 D、一个数据库可以有多个表 7、数据库文件中包含()对象。 A 、表 B、查询 C、窗体 D、以上都包含 8、在 ACCESS 的下列数据类型中,不能建立索引的数据类型是()。 A 、文本型 B、备注型 C、数字型 D、日期时间型 9、如果某一字段数据类型为文本型、字段大小为8,该字段中最多可输入()个汉字 A 、 8 B 、 4 C、 16 D 、32 10、在定义表字段时,输入掩码向导只能处理哪两种字段类型()。 A 、文本和数字B、文本和日期型 C、数据和日期型 D、货币和日期 11、下列哪一个不是设置“关系”时的选项()。 A 、实施参照完整性B、级联更新相关字段 C、级联追加相关记录 D、级联删除相关记录 12、如果字段内容为声音文件,可将此字段定义为()类型。 A 、文本B、查阅向导C、 OLE 对象D、备注 13、在表设计视图中,如果要限定数据的输入格式,应修改字段的()属性。 A 、格式B、有效性规则C、输入格式 D 、输入掩码 14、一般情况下,以下哪个字段可以作为主关键字() A 、基本工资 B 、补贴C、职工姓名D、身份证号码 15、级联删除相关记录的含义是() A、删除主表中的记录,将删除任何相关表中的相关记录 B、删除相关表中的记录,将删除主表中的记录 C、只能删除“一对一”表中的相关记录 D、不能删除“一对多”表中的相关记录 16、文本型字段最多可以存放()个字符。 A 、250B、 10C、 254D、 255 17、下面有关主键的叙述正确的是()。 A、不同的记录可以具有重复的主键值或空值 B、一个表中的主键何以是一个或多个 C、在一个表中的主键只可以是一个字段 D、表中的主键的数据类型必须定义为自动编号或文本 18、下面有关ACCESS 数据库的叙述正确的是() 1

数据库原理复习资料整理

第一章 1.四大基本概念: 数据:数据库中存储的基本对象,它是描述事物的符号记录。种类有:文字、图形、图象、声音等。特点是:数据与其语义是不可分的。 数据库:(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合。其特点是:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。(特点:永久存储、有组织、可共享) 数据库管理系统:是位于用户与操作系统之间的一层数据管理软件。 数据库管理系统的主要功能:数据定义功能;数据组织、存储和管理;数据操纵功能;数据库的事物管理和运行管理;数据库的建立和维护功能;其他功能。 数据库系统:是指在计算机系统中引入数据库后的系统。一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。 在不引起混淆的情况下常常把数据库系统简称为数据库。 2.数据管理技术的三个阶段及其特点 人工管理阶段:特点:1、数据不保存。 2、没有软件系统对数据进行管理。 3、这一时期没有文件的概念,数据的组织方式必须由程序员自行设计。 4、一组数据对应一组程序,数据是不共享的。 5、数据不具有独立性,当数据结构发生变化时,应用程序要变化。 文件系统阶段:特点:1、数据可以长期保存。 2、由文件系统管理数据。 3、数据共享性差, 冗余度大—文件是面向应用的。 4、数据独立性差—是不具有弹性的无结构的数据集合,文件之间是孤立的,不能反映事物间联系。 数据库系统阶段:特点:数据的管理者:DBMS 数据面向的对象:现实世界 数据的共享程度:共享性高 数据的独立性:高度的物理独立性和一定的逻辑独立性 数据的结构化:整体结构化 数据控制能力:由DBMS统一管理和控制 3、数据库系统的特点:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高;数据有DBMS统一管理和控制。 4、数据模型的组成要素:数据结构、数据操作和完整性约束。 数据结构是对系统静态特性的描述。 数据操作是对系统动态特性的描述。 5、概念模型: 基本概念:实体:客观存在并可相互区别的事物称为实体。 属性:实体所具有的某一特性称为属性。 码:唯一标识实体的属性集称为码。 域:属性的取值范围称为该属性的域。 实体型:具有相同属性的实体具有的共同的特征和性质,即: 用实体名及其属性名集合来抽象和刻画同类实体。

数据库原理王珊知识点整理

目录 1.1.1 四个基本概念 (1) 数据(Data) (1) 数据库(Database,简称DB) (1) 长期储存在计算机内、有组织的、可共享的大量数据的集合、 (1) 基本特征 (1) 数据库管理系统(DBMS) (1) 数据定义功能 (1) 数据组织、存储和管理 (1) 数据操纵功能 (2) 数据库的事务管理和运行管理 (2) 数据库的建立和维护功能(实用程序) (2) 其它功能 (2) 数据库系统(DBS) (2) 1.1.2 数据管理技术的产生和发展 (3) 数据管理 (3)

数据管理技术的发展过程 (3) 人工管理特点 (3) 文件系统特点 (4) 1.1.3 数据库系统的特点 (4) 数据结构化 (4) 整体结构化 (4) 数据库中实现的是数据的真正结构化 (4) 数据的共享性高,冗余度低,易扩充、数据独立性高 (5) 数据独立性高 (5) 物理独立性 (5) 逻辑独立性 (5) 数据独立性是由DBMS的二级映像功能来保证的 (5) 数据由DBMS统一管理和控制 (5) 1.2.1 两大类数据模型:概念模型、逻辑模型和物理模型 (6) 1.2.2 数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件. 7 数据的完整性约束条件: (7)

关系数据模型的优缺点 (8) 1.3.1 数据库系统模式的概念 (8) 型(Type):对某一类数据的结构和属性的说明 (8) 值(Value):是型的一个具体赋值 (8) 模式(Schema) (8) 实例(Instance) (8) 1.3.2 数据库系统的三级模式结构 (9) 外模式[External Schema](也称子模式或用户模式), (9) 模式[Schema](也称逻辑模式) (9) 内模式[Internal Schema](也称存储模式) (9) 1.3.3 数据库的二级映像功能与数据独立性 (9) 外模式/模式映像:保证数据的逻辑独立性 (10) 模式/内模式映象:保证数据的物理独立性 (10) 1.4 数据库系统的组成 (10) 数据库管理员(DBA)职责: (10)

整理数据库题库_数据库练习题一

数据库 JUNE 2021题库 整理人尼克 知识改变命运

数据库练习题一 一、单项选择 1.下面关于数据库设计方法的说法中错误的有() A. 数据库设计的一种方法是以信息需求为主,兼顾处理需求,这种方法称为面向数据的设计方法 B. 数据库设计的一种方法是以处理需求为主,兼顾信息需求,这种方法称为面向过程的设计方法 C. 面向数据的设计方法可以较好地反映数据的内在联系 D. 面身过程的设计方法不但可以满足当前应用的需要,还可以满足潜在应用的需求 2. 数据库技术中,独立于计算机系统的模型是() A. E/R模模型 B. 层次模型 C. 关系模型 D. 面向对象的模型 3.关于数据库设计步骤的说法中错误的有() A. 数据库设计一般分为4步:需求分析、概念设计、逻辑设计和物理设计 B. 数据库的概念模式是独立于任何数据库管理系统,不能直接用于数据库实现; C. 物理设计阶段对数据库性能影响已经很小了 D. 逻辑设计是在概念设计的基础上进行的。 4. 下面关于数据库概念设计数据模型的说法中错误的有() A. 可以方便地表示各种类型的数据及其相互关系和约束 B. 针对计算机专业人员 C. 组成模型定义严格,无多义性 D. 具有使用图形表昧概念模 5. 数据库的逻辑设计对数据的性能有一定的影响,下面的措施不能明显改善数据性能的有()。

A. 将数据库中的关系进行完全规范化; B. 将大的关系分成多个小的关系 C. 减少连接运算 D. 尽可能地使用快照 6. 一个学生可以同时借阅多本书,一本书只能由一个学生借阅,学生和图书之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一 7. 一个仓库可以存放多种零件,每一种零件可以存放在不同的仓库中,仓库和零件之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一 8. 一台机器可以加工多种零件,每一种零件可以在多台机器上加工,机器和零件之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一 9.一个公司只能有一个经理,一个经理只能在一个公司担任职务,公司和总经理职务之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一

数据库期末试卷和答案

数据库程序设计试题 1一、判断题(每题1分,共10分) 1、DB、DBMS、DBS三者之间的关系是DBS包括DB和DBMS。( ) 2、数据库的概念结构与支持其的DB的DBMS有关。( ) 3、下列式子R∩S=R—(R—S)成立。( ) 4、数据存储结构改变时逻辑结构不变,相应的程序也不变,这是数据库系统的逻辑独立 性。() 5、关系数据库基本结构是三维表。( ) 6、在嵌入式SQL语句中,主语句向SQL语句提供参数,主要用游标来实现。( ) 7、规范化的投影分解是唯一的。( ) 8、不包含在任何一个候选码中的属性叫做非主属性。( ) 9、在 Transact-SQL 语句的WHERE子句中,完全可以用IN子查询来代替OR逻辑表达式。 ( ) 10、封锁粒度越大,可以同时进行的并发操作越大,系统的并发程度越高。() 二、填空题(每空0.5分,共10分) 1、两个实体间的联系有联系,联系和联系。 2、select命令中,表达条件表达式用where子句,分组用子句,排序用 子句。 3、数据库运行过程中可能发生的故障有、和三类。 4、在“学生-选课-课程”数据库中的三个关系如下: S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)。 现要查找选修“数据库技术”这门课程的学生姓名和成绩,可使用如下的SQL语句:SELECT SNAME,GRADE FROM S,SC,C WHERE CNAME= 数据库技术AND S.S#=SC.S# AND。 5、管理、开发和使用数据库系统的用户主要有、、 。 6、关系模型中可以有三类完整性约束:、 和。 7、并发操作带来数据不一致性包括三类:丢失修改、和。 8、事务应该具有四个属性:原子性、、隔离性和持续性。 9、数据库运行过程中可能发生的故障有事务故障、和三类。 10、在“学生-选课-课程”数据库中的三个关系如下:S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)。 现要查找选修“数据库技术”这门课程的学生姓名和成绩,可使用如下的SQL语句:SELECT SNAME,GRADE FROM S,SC,C WHERE CNAME= ‘数据库技术’AND S.S#=SC.S# AND。 11、数据库设计包括、、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。 12、MS SQL Server提供多个图形化工具,其中用来启动、停止和暂停SQL Server的图形 化工具称为_________。 13 、SELECT语句中进行查询 , 若希望查询的结果不出现重复元组 , 应在SELECT子 句中使用____________保留字。 14、如果一个关系不满足2NF,则该关系一定也不满足__________(在1NF、2NF、3NF 范围内)。 15、数据库的物理设计主要考虑三方面的问题:______、分配存储空间、实现存取路径。 三、单选题(每题1分,共20 分) 1、在SQL中,关系模式称为() A、视图 B、对象 C、关系表 D、存储文件 2、要保证数据库逻辑数据独立性,需要修改的是( )

相关主题
文本预览
相关文档 最新文档