第6章 数据库技术

合集下载

数据库课程第6章课件

数据库课程第6章课件
• 设F是属性集合U上的一个函数依赖集,X U,则称用 Armstrong推理规则推出的函数依赖X A中所有A的集 合,称为属性集X关于F的闭包,记为X+,显然: X X+
PPT学习交流
13
4 闭包的计算
• 目标
• 通过给定的函数依赖,找出所有的函 数依赖
• 方法
• 利用FD的规则(传递、合并、分解),推 导出函数依赖的集合,即闭包(closure)
PPT学习交流
10
2 函数依赖的推理规则
• Armstrong公理
X,Y,Z是属性集, • 自反律。若Y X, 则X Y。 • 增广律。若X Y ,则XZ YZ。 • 传递律。若X Y, Y Z,则X Z 。 • 合并律。若X Y,X Z,则X YZ。 • 分解律。若X YZ ,则X Y,X Z 。 • 伪传递律。若X Y,WY Z,则XW Z 。
• 判定XY是否在F+中,只要判断XY能否用推
理 就规 把则 计从算FF导+的出问,题即简判化断为Y计算X的是F 否成问X立题F。。这样
PPT学习交流
16
4 闭包的计算
〔算法〕:求属性集X关于函数依赖集F的属性闭包X

F
• 输入:有限的属性集合U,它上面的函数依赖集合F,和U的
一个子集X.

输出:X关于F的闭包
2) R不属于4NF
PPT学习交流
6
6.2.9 规范化的步骤
▪规范化的基本思想:
▪ 逐步消除数据依赖中不合适的部分 ▪ “一事一地”模式设计原则: 一个关系只说明一个概念、一件事物或事物 间的一种联系,这是规范化的目标
PPT学习交流
7
规范化的基本步骤
1NF
消去非主属性对键的部分函数依赖

王珊数据库原理6

王珊数据库原理6

– 设计人员缺少用户的专业知识,不易理解用 户的真正需求,甚至误解用户的需求。
– 新的硬件、软件技术的出现也会使用户需求 发生变化。
需求分析的难点(续)
解决方法
– 设计人员必须采用有效的方法,与用户不断 深入地进行交流,才能逐步得以确定用户的 实际需求
6.2 需求分析
6.2.1 需求分析的任务
需求分析的重点(续)
处理要求
– 对处理功能的要求 – 对处理的响应时间的要求 – 对处理方式的要求(批处理 / 联机处理)
新系统的功能必须能够满足用户的信息要求、
处理要求、安全性与完整性要求。
三、需求分析的难点
确定用户最终需求的难点
– 用户缺少计算机知识,开始时无法确定计算 机究竟能为自己做什么,不能做什么,因此 无法一下子准确地表达自己的需求,他们所 提出的需求往往不断地变化。
其中学生管理子系统开发小组通过进行进一步的需求 调查,明确了该子系统的主要功能是进行学籍管理和 课程管理,包括学生报到、入学、毕业的管理,学生 上课情况的管理。通过详细的信息流程分析和数据收 集后,他们生成了该子系统的数据流图。
6.2 需求分析
6.2.1 需求分析的任务
6.2.2 需求分析的方法 6.2.3 数据字典
处理过程(续)
数据存储“学生登记表”可如下描述: 数据存储: 学生登记表 说明: 记录学生的基本情况 流入数据流:…… 流出数据流:…… 组成: …… 数据量: 每年3000张 存取方式: 随机存取
处理过程(续)
– 各个部门输入和使用什么数据
– 如何加工处理这些数据
– 输出什么信息
– 输出到什么部门
– 输出结果的格式是什么
调查与初步分析用户需求(续)

SQL Server数据库应用开发技术 第六章

SQL Server数据库应用开发技术 第六章
返回目录
6.2 使用约束
6.2.1 空约束(NULL)、非空约束(NOT NULL)
1. 用SQL Server Management Studio实现 【例6.1】设置学生表中字段学号、姓名、性别、入学 时间不允许为空。 1)打开SQL Server Management Studio,在对象资源管理 器中展开教务管理系统,展开“表”结点。 2)选择“学生表”,单击右键,选择“修改”进入表设计 器进行表结构设计,如图6.1所示,分别将学号、姓名 、性别、入学时间字段后的允许空复选框去掉对勾。 3)修改完毕后单击工具栏上的“保存”图标或选择菜单“ 文件”下的“保存”项,关闭窗口即可。
第6章 数据完整性实施
6.1 数据完整性实施方法 6.2 使用约束
6.3 使用默认
6.4 使用规则
6.5 使用标识列
小结
6.1 数据完整性实施方法
有两种方式可以实现数据完整性,即声明数据完 整性和过程数据完整性。 1.声明数据完整性 使用声明数据完整性就是通过在对象定义中来实 现,即定义数据必须满足的条件作为对象定义的一部 分。它包括使用各种约束、默认和规则。 实现数据完整性的首选方法是使用声明完整性。 2.过程完整性 过程数据完整性是通过在脚本语言中定义来实现 的。当执行这些脚本时,就可以强制完整性的实现。 过程数据完整性的方式包括使用触发器和存储过程。 也可以在客户机或服务器上使用其他的编程语言和工 具实现。
【例6.7】创建学生表,对字段身份证号设置唯一约束。
返回目录
6.2 使用约束
6.2.3 唯一约束(UNIQUE)
由于一个表只能定义一个主键,而实际应用中表中 不止一列希望值是唯一的,例如身份证号一般不会做主 键,但它的值也应确保是唯一的,这时就可使用唯一约 束来确保唯一性了。与主键不同的是一个表可以定义多 个 UNIQUE 约束,且定义 UNIQUE 约束列允许空值。不 过由于唯一性,空值也只能出现一次。

数据库系统基础教程第六章答案

数据库系统基础教程第六章答案

Solutions Chapter 6Attributes must be separated by commas. Thus here B is an alias of A.6.1.2a)SELECT address AS Studio_AddressFROM StudioWHERE NAME = 'MGM';b)SELECT birthdate AS Star_BirthdateFROM MovieStarWHERE name = 'Sandra Bullock';c)SELECT starNameFROM StarsInWHERE movieYear = 1980OR movieTitle LIKE '%Love%';However, above query will also return words that have the substring Love e.g. Lover. Below query will only return movies that have title containing the word Love.SELECT starNameFROM StarsInWHERE movieYear = 1980OR movieTitle LIKE 'Love %'OR movieTitle LIKE '% Love %'OR movieTitle LIKE '% Love'OR movieTitle = 'Love';d)SELECT name AS Exec_NameFROM MovieExecWHERE netWorth >= 10000000;e)SELECT name AS Star_NameFROM movieStarWHERE gender = 'M'OR address LIKE '% Malibu %';a)SELECT model,speed,hdFROM PCWHERE price < 1000 ;MODEL SPEED HD----- ---------- ------1002 2.10 2501003 1.42 801004 2.80 2501005 3.20 2501007 2.20 2001008 2.20 2501009 2.00 2501010 2.80 3001011 1.86 1601012 2.80 1601013 3.06 8011 record(s) selected.b)SELECT model ,speed AS gigahertz,hd AS gigabytesFROM PCWHERE price < 1000 ;MODEL GIGAHERTZ GIGABYTES ----- ---------- ---------1002 2.10 2501003 1.42 801004 2.80 2501005 3.20 2501007 2.20 2001008 2.20 2501009 2.00 2501010 2.80 3001011 1.86 1601012 2.80 1601013 3.06 8011 record(s) selected.c)SELECT makerFROM ProductWHERE TYPE = 'printer' ; MAKER-----DDEEEHH7 record(s) selected.d)SELECT model,ram ,screenFROM LaptopWHERE price > 1500 ; MODEL RAM SCREEN ----- ------ -------2001 2048 20.12005 1024 17.02006 2048 15.42010 2048 15.44 record(s) selected.e)SELECT *FROM PrinterWHERE color ;MODEL CASE TYPE PRICE----- ----- -------- ------3001 TRUE ink-jet 993003 TRUE laser 9993004 TRUE ink-jet 1203006 TRUE ink-jet 1003007 TRUE laser 2005 record(s) selected.Note: Implementation of Boolean type is optional in SQL standard (feature IDT031). PostgreSQL has implementation similar to above example. Other DBMS provide equivalent support. E.g. In DB2 the column type can be declare as SMALLINT with CONSTRAINT that the value can be 0 or 1. The result can be returned as Boolean type CHAR using CASE.CREATE TABLE Printer(model CHAR(4) UNIQUE NOT NULL,color SMALLINT ,type VARCHAR(8) ,price SMALLINT ,CONSTRAINT Printer_ISCOLOR CHECK(color IN(0,1)));SELECT model,CASE colorWHEN 1THEN 'TRUE'WHEN 0THEN 'FALSE'ELSE 'ERROR'END CASE ,type,priceFROM PrinterWHERE color = 1;f)SELECT model,hdFROM PCWHERE speed = 3.2AND price < 2000;MODEL HD----- ------1005 2501006 3202 record(s) selected.6.1.4a)SELECT class,countryFROM ClassesWHERE numGuns >= 10 ; CLASS COUNTRY------------------ ------------ Tennessee USA1 record(s) selected.b)SELECT name AS shipName FROM ShipsWHERE launched < 1918 ; SHIPNAME------------------HarunaHieiKirishimaKongoRamilliesRenownRepulseResolutionRevengeRoyal OakRoyal Sovereign11 record(s) selected.c)SELECT ship AS shipName, battleFROM OutcomesWHERE result = 'sunk' ; SHIPNAME BATTLE------------------ ------------------ Arizona Pearl Harbor Bismark Denmark Strait Fuso Surigao Strait Hood Denmark Strait Kirishima Guadalcanal Scharnhorst North Cape Yamashiro Surigao Strait 7 record(s) selected.d)SELECT name AS shipNameFROM ShipsWHERE name = class ;SHIPNAME------------------IowaKongoNorth CarolinaRenownRevengeYamato6 record(s) selected.e)SELECT name AS shipNameFROM ShipsWHERE name LIKE 'R%';SHIPNAME------------------RamilliesRenownRepulseResolutionRevengeRoyal OakRoyal Sovereign7 record(s) selected.Note: As mentioned in exercise 2.4.3, there are some dangling pointers and to retrieve all ships a UNION of Ships and Outcomes is required.Below query returns 8 rows including ship named Rodney.SELECT name AS shipNameFROM ShipsWHERE name LIKE 'R%'UNIONSELECT ship AS shipNameFROM OutcomesWHERE ship LIKE 'R%';f) Only using a filter like '% % %' will incorrectly match name such as ' a b ' since % can match any sequence of 0 or more characters.SELECT name AS shipNameFROM ShipsWHERE name LIKE '_% _% _%' ;SHIPNAME------------------0 record(s) selected.Note: As in (e), UNION with results from Outcomes.SELECT name AS shipNameFROM ShipsWHERE name LIKE '_% _% _%'UNIONSELECT ship AS shipNameFROM OutcomesWHERE ship LIKE '_% _% _%' ;SHIPNAME------------------Duke of YorkKing George VPrince of Wales3 record(s) selected.6.1.5a)The resulting expression is false when neither of (a=10) or (b=20) is TRUE.a = 10b = 20 a = 10 OR b = 20NULL TRUE TRUETRUE NULL TRUEFALSE TRUE TRUETRUE FALSE TRUETRUE TRUE TRUEb)The resulting expression is only TRUE when both (a=10) and (b=20) are TRUE.a = 10b = 20 a = 10 AND b = 20TRUE TRUE TRUEThe expression is always TRUE unless a is NULL.a < 10 a >= 10 a = 10 ANDb = 20TRUE FALSE TRUEFALSE TRUE TRUEd)The expression is TRUE when a=b except when the values are NULL.a b a = bNOT NULL NOT NULL TRUE when a=b; else FALSEe)Like in (d), the expression is TRUE when a<=b except when the values are NULL.a b a <= bNOT NULL NOT NULL TRUE when a<=b; else FALSE6.1.6SELECT *FROM MoviesWHERE LENGTH IS NOT NULL;6.2.1a)SELECT AS starNameFROM MovieStar M,StarsIn SWHERE = S.starNameAND S.movieTitle = 'Titanic'AND M.gender = 'M';b)SELECT S.starNameFROM Movies M ,StarsIn S,Studios TWHERE ='MGM'AND M.year = 1995AND M.title = S.movieTitleAND M.studioName = ;SELECT AS presidentName FROM MovieExec X,Studio TWHERE X.cert# = T.presC#AND = 'MGM';d)SELECT M1.titleFROM Movies M1,Movies M2WHERE M1.length > M2.lengthAND M2.title ='Gone With the Wind' ;e)SELECT AS execNameFROM MovieExec X1,MovieExec X2WHERE Worth > WorthAND = 'Merv Griffin' ;6.2.2a)SELECT R.maker AS manufacturer,L.speed AS gigahertzFROM Product R,Laptop LWHERE L.hd >= 30AND R.model = L.model ; MANUFACTURER GIGAHERTZ------------ ----------A 2.00A 2.16A 2.00B 1.83E 2.00E 1.73E 1.80F 1.60F 1.60G 2.0010 record(s) selected.SELECT R.model,P.priceFROM Product R,PC PWHERE R.maker = 'B'AND R.model = P.model UNIONSELECT R.model,L.priceFROM Product R,Laptop LWHERE R.maker = 'B'AND R.model = L.model UNIONSELECT R.model,T.priceFROM Product R,Printer TWHERE R.maker = 'B'AND R.model = T.model ; MODEL PRICE----- ------1004 6491005 6301006 10492007 14294 record(s) selected.c)SELECT R.makerFROM Product R,Laptop LWHERE R.model = L.model EXCEPTSELECT R.makerFROM Product R,PC PWHERE R.model = P.model ; MAKER-----FG2 record(s) selected.SELECT DISTINCT P1.hd FROM PC P1,PC P2WHERE P1.hd =P2.hdAND P1.model > P2.model ; Alternate Answer:SELECT DISTINCT P.hdFROM PC PGROUP BY P.hdHAVING COUNT(P.model) >= 2 ;e)SELECT P1.model,P2.modelFROM PC P1,PC P2WHERE P1.speed = P2.speed AND P1.ram = P2.ramAND P1.model < P2.model ; MODEL MODEL----- -----1004 10121 record(s) selected.f)SELECT M.makerFROM(SELECT maker,R.modelFROM PC P,Product RWHERE SPEED >= 3.0AND P.model=R.modelUNIONSELECT maker,R.modelFROM Laptop L,Product RWHERE speed >= 3.0AND L.model=R.model) MGROUP BY M.makerHAVING COUNT(M.model) >= 2 ; MAKER-----B1 record(s) selected.6.2.3a)SELECT FROM Ships S,Classes CWHERE S.class = C.classAND C.displacement > 35000;NAME------------------IowaMissouriMusashiNew JerseyNorth CarolinaWashingtonWisconsinYamato8 record(s) selected.b)SELECT ,C.displacement,C.numGunsFROM Ships S ,Outcomes O,Classes CWHERE = O.shipAND S.class = C.classAND O.battle = 'Guadalcanal' ;NAME DISPLACEMENT NUMGUNS------------------ ------------ -------Kirishima 32000 8Washington 37000 92 record(s) selected.Note:South Dakota was also engaged in battle of Guadalcanal but not chosen since it is not in Ships table(Hence, no information regarding it's Class isavailable).SELECT name shipName FROM ShipsUNIONSELECT ship shipName FROM Outcomes ; SHIPNAME------------------ArizonaBismarkCaliforniaDuke of YorkFusoHarunaHieiHoodIowaKing George VKirishimaKongoMissouriMusashiNew JerseyNorth CarolinaPrince of Wales RamilliesRenownRepulseResolutionRevengeRodneyRoyal OakRoyal Sovereign ScharnhorstSouth DakotaTenneseeTennesseeWashingtonWest VirginiaWisconsinYamashiroYamato34 record(s) selected.SELECT C1.countryFROM Classes C1,Classes C2WHERE C1.country = C2.country AND C1.type = 'bb'AND C2.type = 'bc' ; COUNTRY------------Gt. BritainJapan2 record(s) selected.e)SELECT O1.shipFROM Outcomes O1,Battles B1WHERE O1.battle = AND O1.result = 'damaged'AND EXISTS(SELECT B2.dateFROM Outcomes O2,Battles B2WHERE O2.battle= AND O1.ship = O2.shipAND B1.date < B2.date) ;SHIP------------------0 record(s) selected.f)SELECT O.battleFROM Outcomes O,Ships S ,Classes CWHERE O.ship = AND S.class = C.class GROUP BY C.country,O.battleHAVING COUNT(O.ship) > 3; SELECT O.battleFROM Ships S ,Classes C,Outcomes OWHERE C.Class = S.classAND O.ship = GROUP BY C.country,O.battleHAVING COUNT(O.ship) >= 3;6.2.4Since tuple variables are not guaranteed to be unique, every relation Ri should be renamed using an alias. Every tuple variable should be qualified with the alias. Tuple variables for repeating relations will also be distinctlyidentified this way.Thus the query will be likeSELECT A1.COLL1,A1.COLL2,A2.COLL1,…FROM R1 A1,R2 A2,…,Rn AnWH ERE A1.COLL1=A2.COLC2,…6.2.5Again, create a tuple variable for every Ri, i=1,2,...,nThat is, the FROM clause isFROM R1 A1, R2 A2,...,Rn An.Now, build the WHERE clause from C by replacing every reference to some attribute COL1 of Ri by Ai.COL1. In addition apply Natural Join i.e. add condition to check equality of common attribute names between Ri and Ri+1 for all i from 0 to n-1. Also, build the SELECT clause from list of attributes L by replacing every attribute COLj of Ri by Ai.COLj.6.3.1a)SELECT DISTINCT makerFROM ProductWHERE model IN(SELECT modelFROM PCWHERE speed >= 3.0);SELECT DISTINCT R.makerFROM Product RWHERE EXISTS(SELECT P.modelFROM PC PWHERE P.speed >= 3.0AND P.model =R.model);SELECT P1.modelFROM Printer P1WHERE P1.price >= ALL(SELECT P2.priceFROM Printer P2) ;SELECT P1.modelFROM Printer P1WHERE P1.price IN(SELECT MAX(P2.price)FROM Printer P2) ;c)SELECT L.modelFROM Laptop LWHERE L.speed < ANY(SELECT P.speedFROM PC P) ;SELECT L.modelFROM Laptop LWHERE EXISTS(SELECT P.speedFROM PC PWHERE P.speed >= L.speed ) ;SELECT modelFROM(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) M1WHERE M1.price >= ALL (SELECT priceFROM PCUNIONSELECT priceFROM LaptopUNIONSELECT priceFROM Printer) ;(d) – contd --SELECT modelFROM(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) M1WHERE M1.price IN(SELECT MAX(price)FROM(SELECT priceFROM PCUNIONSELECT priceFROM LaptopUNIONSELECT priceFROM Printer) M2) ;e)SELECT R.makerFROM Product R,Printer TWHERE R.model =T.model AND T.price <= ALL(SELECT MIN(price)FROM Printer);SELECT R.makerFROM Product R,Printer T1WHERE R.model =T1.model AND T1.price IN(SELECT MIN(T2.price) FROM Printer T2);f)SELECT R1.makerFROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram IN(SELECT MIN(ram)FROM PC)AND P1.speed >= ALL(SELECT P1.speedFROM Product R1,PC P1WHERE R1.model=P1.model AND P1.ram IN(SELECT MIN(ram)FROM PC));SELECT R1.makerFROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram =(SELECT MIN(ram)FROM PC)AND P1.speed IN(SELECT MAX(P1.speed)FROM Product R1,PC P1WHERE R1.model=P1.model AND P1.ram IN(SELECT MIN(ram)FROM PC));6.3.2a)SELECT C.countryFROM Classes CWHERE numGuns IN(SELECT MAX(numGuns)FROM Classes);SELECT C.countryFROM Classes CWHERE numGuns >= ALL(SELECT numGunsFROM Classes);b)SELECT DISTINCT C.class FROM Classes C,Ships SWHERE C.class = S.classAND EXISTS(SELECT shipFROM Outcomes OWHERE O.result='sunk' AND O.ship = ) ;SELECT DISTINCT C.class FROM Classes C,Ships SWHERE C.class = S.classAND IN(SELECT shipFROM Outcomes OWHERE O.result='sunk' ) ;c)SELECT FROM Ships SWHERE S.class IN(SELECT classFROM Classes CWHERE bore=16) ;SELECT FROM Ships SWHERE EXISTS(SELECT classFROM Classes CWHERE bore =16AND C.class = S.class );SELECT O.battleFROM Outcomes OWHERE O.ship IN(SELECT nameFROM Ships SWHERE S.Class ='Kongo' );SELECT O.battleFROM Outcomes OWHERE EXISTS(SELECT nameFROM Ships SWHERE S.Class ='Kongo' AND = O.ship );SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns >= ALL(SELECT numGunsFROM Ships S2,Classes C2WHERE S2.Class = C2.Class AND C2.bore = C.bore) ;SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns IN(SELECT MAX(numGuns)FROM Ships S2,Classes C2WHERE S2.Class = C2.Class AND C2.bore = C.bore) ;Better answer;SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns >= ALL(SELECT numGunsFROM Classes C2WHERE C2.bore = C.bore) ;SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns IN(SELECT MAX(numGuns)FROM Classes C2WHERE C2.bore = C.bore) ;6.3.3SELECT titleFROM MoviesGROUP BY titleHAVING COUNT(title) > 1 ;6.3.4SELECT FROM Ships S,Classes CWHERE S.Class = C.Class ;Assumption: In R1 join R2, the rows of R2 are unique on the joining columns. SELECT COLL12,COLL13,COLL14FROM R1WHERE COLL12 IN(SELECT COL22FROM R2)AND COLL13 IN(SELECT COL33FROM R3)AND COLL14 IN(SELECT COL44FROM R4) ...6.3.5(a)SELECT ,S.addressFROM MovieStar S,MovieExec EWHERE S.gender ='F'AND Worth > 10000000AND = AND S.address = E.address ;Note: As mentioned previously in the book, the names of stars are unique. However no such restriction exists for executives. Thus, both name and address are required as join columns.Alternate solution:SELECT name,addressFROM MovieStarWHERE gender = 'F'AND (name, address) IN(SELECT name,addressFROM MovieExecWHERE netWorth > 10000000) ;(b)SELECT name,addressFROM MovieStarWHERE (name,address) NOT IN(SELECT name addressFROM MovieExec) ;6.3.6By replacing the column in subquery with a constant and using IN subquery forthe constant, statement equivalent to EXISTS can be found.i.e. replace "WHERE EXISTS (SELECT C1 FROM R1..)" by "WHERE 1 IN (SELECT 1 FROM R1...)"Example:SELECT DISTINCT R.makerFROM Product RWHERE EXISTS(SELECT P.modelFROM PC PWHERE P.speed >= 3.0AND P.model =R.model) ;Above statement can be transformed to below statement.SELECT DISTINCT R.makerFROM Product RWHERE 1 IN(SELECT 1FROM PC PWHERE P.speed >= 3.0AND P.model =R.model) ;6.3.7(a)n*m tuples are returned where there are n studios and m executives. Each studiowill appear m times; once for every exec.(b)There are no common attributes between StarsIn and MovieStar; hence no tuplesare returned.(c)There will be at least one tuple corresponding to each star in MovieStar. Theunemployed stars will appear once with null values for StarsIn. All employedstars will appear as many times as the number of movies they are working in. Inother words, for each tuple in StarsIn(starName), the correspoding tuple fromMovieStar(name)) is joined and returned. For tuples in MovieStar that do nothave a corresponding entry in StarsIn, the MovieStar tuple is returned with nullvalues for StarsIn columns.6.3.8Since model numbers are unique, a full natural outer join of PC, Laptop andPrinter will return one row for each model. We want all information about PCs,Laptops and Printers even if the model does not appear in Product but vice versais not true. Thus a left natural outer join between Product and result above isrequired. The type attribute from Product must be renamed since Printer has atype attribute as well and the two attributes are different.(SELECT maker,model,type AS productTypeFROM Product) RIGHT NATURAL OUTER JOIN ((PC FULL NATURAL OUTER JOIN Laptop) FULL NATURAL OUTER JOIN Printer);Alternately, the Product relation can be joined individually with each ofPC,Laptop and Printer and the three results can be Unioned together. Forattributes that do not exist in one relation, a constant such as 'NA' or 0.0 canbe used. Below is an example of this approach using PC and Laptop.SELECT R.MAKER ,R.MODEL ,R.TYPE ,P.SPEED ,P.RAM ,P.HD ,0.0 AS SCREEN,P.PRICEFROM PRODUCT R,PC PWHERE R.MODEL = P.MODELUNIONSELECT R.MAKER ,R.MODEL ,R.TYPE ,L.SPEED ,L.RAM ,L.HD ,L.SCREEN,L.PRICEFROM PRODUCT R,LAPTOP LWHERE R.MODEL = L.MODEL;6.3.9SELECT *FROM Classes RIGHT NATURALOUTER JOIN Ships ;6.3.10SELECT *FROM Classes RIGHT NATURALOUTER JOIN ShipsUNION(SELECT C2.class ,C2.type ,C2.country ,C2.numguns ,C2.bore ,C2.displacement,C2.class NAME ,FROM Classes C2,Ships S2WHERE C2.Class NOT IN(SELECT ClassFROM Ships)) ;6.3.11(a)SELECT *FROM R,S ;(b)Let Attr consist ofAttrR = attributes unique to RAttrS = attributes unique to SAttrU = attributes common to R and SThus in Attr, attributes common to R and S are not repeated. SELECT AttrFROM R,SWHERE R.AttrU1 = S.AttrU1AND R.AttrU2 = S.AttrU2 ...AND R.AttrUi = S.AttrUi ;(c)SELECT *FROM R,SWHERE C ;6.4.1(a)DISTINCT keyword is not required here since each model only occurs once in PC relation.SELECT modelFROM PCWHERE speed >= 3.0 ;(b)SELECT DISTINCT R.makerFROM Product R,Laptop LWHERE R.model = L.modelAND L.hd > 100 ;(c)SELECT R.model,P.priceFROM Product R,PC PWHERE R.model = P.modelAND R.maker = 'B'UNIONSELECT R.model,L.priceFROM Product R,Laptop LWHERE R.model = L.modelAND R.maker = 'B'UNIONSELECT R.model,T.priceFROM Product R,Printer TWHERE R.model = T.modelAND R.maker = 'B' ;SELECT modelFROM PrinterWHERE color=TRUEAND type ='laser' ;(e)SELECT DISTINCT R.makerFROM Product R,Laptop LWHERE R.model = L.modelAND R.maker NOT IN(SELECT R1.makerFROM Product R1,PC PWHERE R1.model = P.model) ;better:SELECT DISTINCT R.makerFROM Product RWHERE R.type = 'laptop'AND R.maker NOT IN(SELECT R.makerFROM Product RWHERE R.type = 'pc') ;(f)With GROUP BY hd, DISTINCT keyword is not required. SELECT hdFROM PCGROUP BY hdHAVING COUNT(hd) > 1 ;(g)SELECT P1.model,P2.modelFROM PC P1,PC P2WHERE P1.speed = P2.speedAND P1.ram = P2.ramAND P1.model < P2.model ;SELECT R.makerFROM Product RWHERE R.model IN(SELECT P.modelFROM PC PWHERE P.speed >= 2.8)OR R.model IN(SELECT L.modelFROM Laptop LWHERE L.speed >= 2.8)GROUP BY R.makerHAVING COUNT(R.model) > 1 ;(i)After finding the maximum speed, an IN subquery can provide the manufacturer name.SELECT MAX(M.speed)FROM(SELECT speedFROM PCUNIONSELECT speedFROM Laptop) M ;SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelAND P.speed IN(SELECT MAX(M.speed)FROM(SELECT speedFROM PCUNIONSELECT speedFROM Laptop) M)UNIONSELECT R2.makerFROM Product R2,Laptop LWHERE R2.model = L.modelAND L.speed IN(SELECT MAX(N.speed)FROM(SELECT speedFROM PCUNIONSELECT speedFROM Laptop) N) ;Alternately,SELECT COALESCE(MAX(P2.speed),MAX(L2.speed),0) SPEED FROM PC P2FULL OUTER JOIN Laptop L2ON P2.speed = L2.speed ;SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelAND P.speed IN(SELECT COALESCE(MAX(P2.speed),MAX(L2.speed),0) SPEED FROM PC P2FULL OUTER JOIN Laptop L2ON P2.speed = L2.speed)UNIONSELECT R2.makerFROM Product R2,Laptop LWHERE R2.model = L.modelAND L.speed IN(SELECT COALESCE(MAX(P2.speed),MAX(L2.speed),0) SPEED FROM PC P2FULL OUTER JOIN Laptop L2ON P2.speed = L2.speed)SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelGROUP BY R.makerHAVING COUNT(DISTINCT speed) >= 3 ;(k)SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelGROUP BY R.makerHAVING COUNT(R.model) = 3 ;better;SELECT R.makerFROM Product RWHERE R.type='pc'GROUP BY R.makerHAVING COUNT(R.model) = 3 ;6.4.2(a)We can assume that class is unique in Classes and DISTINCT keyword is not required.SELECT class,countryFROM ClassesWHERE bore >= 16 ;(b)Ship names are not unique (In absence of hull codes, year of launch can help distinguish ships).SELECT DISTINCT name AS Ship_NameFROM ShipsWHERE launched < 1921 ;(c)SELECT DISTINCT ship AS Ship_NameFROM OutcomesWHERE battle = 'Denmark Strait'AND result = 'sunk' ;(d)SELECT DISTINCT AS Ship_NameFROM Ships S,Classes CWHERE S.class = C.classAND C.displacement > 35000 ;SELECT DISTINCT O.ship AS Ship_Name,C.displacement ,C.numGunsFROM Classes C ,Outcomes O,Ships SWHERE C.class = S.classAND = O.shipAND O.battle = 'Guadalcanal' ;SHIP_NAME DISPLACEMENT NUMGUNS------------------ ------------ -------Kirishima 32000 8Washington 37000 92 record(s) selected.Note: South Dakota was also in Guadalcanal but its class information is not available. Below query will return name of all ships that were in Guadalcanal even if no other information is available (shown as NULL). The above query is modified from INNER joins to LEFT OUTER joins.SELECT DISTINCT O.ship AS Ship_Name,C.displacement ,C.numGunsFROM Outcomes OLEFT JOIN Ships SON = O.shipLEFT JOIN Classes CON C.class = S.classWHERE O.battle = 'Guadalcanal' ;SHIP_NAME DISPLACEMENT NUMGUNS------------------ ------------ -------Kirishima 32000 8South Dakota - -Washington 37000 93 record(s) selected.(f)The Set opearator UNION guarantees unique results.SELECT ship AS Ship_NameFROM OutcomesUNIONSELECT name AS Ship_NameFROM Ships ;(g)SELECT C.classFROM Classes C,Ships SWHERE C.class = S.classGROUP BY C.classHAVING COUNT() = 1 ;better:SELECT S.classFROM Ships SGROUP BY S.classHAVING COUNT() = 1 ;(h)The Set opearator INTERSECT guarantees unique results.SELECT C.countryFROM Classes CWHERE C.type='bb'INTERSECTSELECT C2.countryFROM Classes C2WHERE C2.type='bc' ;However, above query does not account for classes without any ships belonging to them.SELECT C.countryFROM Classes C,Ships SWHERE C.class = S.classAND C.type ='bb'INTERSECTSELECT C2.countryFROM Classes C2,Ships S2WHERE C2.class = S2.classAND C2.type ='bc' ;SELECT O2.ship AS Ship_Name FROM Outcomes O2,Battles B2WHERE O2.battle = AND B2.date > ANY(SELECT B.dateFROM Outcomes O,Battles BWHERE O.battle = AND O.result ='damaged' AND O.ship = O2.ship);6.4.3a)SELECT DISTINCT R.maker FROM Product R,PC PWHERE R.model = P.modelAND P.speed >= 3.0;b)Models are unique.SELECT P1.modelFROM Printer P1LEFT OUTER JOIN Printer P2 ON (P1.price < P2.price) WHERE P2.model IS NULL ;c)SELECT DISTINCT L.model FROM Laptop L,PC PWHERE L.speed < P.speed ;Due to set operator UNION, unique results are returned.It is difficult to completely avoid a subquery here. One option is to use Views. CREATE VIEW AllProduct ASSELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer ;SELECT A1.modelFROM AllProduct A1LEFT OUTER JOIN AllProduct A2ON (A1.price < A2.price)WHERE A2.model IS NULL ;But if we replace the View, the query contains a FROM subquery. SELECT A1.modelFROM(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) A1LEFT OUTER JOIN(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) A2ON (A1.price < A2.price) WHERE A2.model IS NULL ;e)SELECT DISTINCT R.makerFROM Product R,Printer TWHERE R.model =T.modelAND T.price <= ALL(SELECT MIN(price)FROM Printer);f)SELECT DISTINCT R1.makerFROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram IN(SELECT MIN(ram)FROM PC)AND P1.speed >= ALL(SELECT P1.speedFROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram IN(SELECT MIN(ram)FROM PC));6.4.4a)SELECT DISTINCT C1.countryFROM Classes C1LEFT OUTER JOIN Classes C2 ON (C1.numGuns < C2.numGuns) WHERE C2.country IS NULL ;。

计算机基础练习题分析

计算机基础练习题分析

第1章-计算科学与计算机测验1.信息安全的四大隐患是:计算机犯罪、______、误操作和计算机设备的物理性破坏。

正确答案是:计算机病毒电子计算机之所以能够快速、自动、准确地按照人们意图进行工作,其最主要的原因是【】。

2.a. 存储程序b. 采用逻辑器件c. 识别控制代码d. 总线结构正确答案是:a.存储程序3.()信息技术的核心是通信技术和回答正确。

正确答案是:计算机技术4.()计算思维主要是计算数学、信息科学和计算机学科的任务,与其他学科关系不大。

正确的答案是“错”。

5.()构成计算机的电子和机械的物理实体称为外部设备。

正确的答案是“错”。

6.()计算机系统可靠性指标可用平均无故障运行时间来描述。

正确的答案是“对”。

7.冯.诺依曼体系结构的计算机硬件系统的五大部件是【】a. 输入设备、运算器、控制器、存储器、输出设备b. 键盘、主机、显示器、硬盘和打印机c. 输入设备、中央处理器、硬盘、存储器和输出设备d. 键盘和显示器、运算器、控制器、存储器和电源设备正确答案是:a.输入设备、运算器、控制器、存储器、输出设备8.从人类认识和改造世界的思维方式出发,科学思维可以分为理论思维、实验思维和_____三种。

正确答案是:计算思维9.办公自动化是计算机的一项应用,按计算机应用的分类,它属于【】a. 实时控制b. 数据处理c. 辅助设计d. 科学计算正确答案是:b.数据处理10.( )图灵机不能计算的问题现代计算机未必不能计算。

正确的答案是“错”。

第2章-计算机系统测验1.反映计算机存储容量的基本单位是【】字长b. 字c. 字节d. 二进制位正确答案是:c.字节计算机的工作过程是【】完全自动控制过程b. 执行指令的过程c. 执行程序的过程d. 执行命令的过程正确答案是:b.执行指令的过程3.微型机在使用过程中突然断电,则【】中的信息将全部丢失。

a. 磁盘b. 内存c. ROMd. SRAM正确答案是:d.SRAM4.下列关于CPU的相关叙述中正确的是【】。

第六章 数据库与数据仓库--PZZ

第六章  数据库与数据仓库--PZZ
《管理信息系统》 山东大学管理学院信息管理系 彭志忠
二级映射
为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统 在这三级模式之间提供了两层映射:外模式—模式映射,模式—内模式映 射。 ①外模式—模式映射 外模式—模式映射定义了该外模式与模式之间的对应关系。这些映射 定义通常包含在各自外模式的描述中。当模式改变时(例如增加新的属性、 改变属性的数据类型时),只要改变其映射,就可以使外模式保持不变,对 应的应用程序也可保持不变(因为应用程序是依据外模式编写的),从而保 证了数据与应用程序的逻辑独立性。 ②模式—内模式映射
彭志忠
一、数据管理技术及其发展
(三)数据库系统阶段
20世纪60年代以来,出现了统一管理数据的专门软件系统—数据库管理 系统(DBMS,DataBase Management System)。 数据库阶段的数据管理特点是: 1、数据结构化。数据结构化是数据库与文件系统的根本区别。
2、较高的数据独立性。用户能以简单的逻辑结构操作数据而无需考虑 数据的物理结构。
3、数据具有一定的独立 性。
《管理信息系统》
山东大学管理学院信息管理系
彭志忠
传统文件处理系统
用户 用户 用户 应用程序1 应用程序2 应用程序3 数据文件1 数据文件2 数据文件3
存在问题:
1、数据冗余与数据不一致性
2、数据联系弱 3、缺少数据字典,缺乏灵活性
《管理信息系统》
山东大学管理学院信息管理系
3、多媒体数据库
多媒体数据具有数据量大 、结构复杂 、数据传输的连续性 等特点。因 而,多媒体数据库需要有特殊的数据结构、存储技术、查询和处理方式。
4、数据仓库
数据仓库,就是一种长期数据存储,这些数据来自于多个异种数据源。 通过数据仓库提供的联机分析处理(OLAP)工具,实现各种粒度的多维数据 分析,以便向管理决策提供支持。

《数据库技术与应用》第6章习题答案

《数据库技术与应用》第6章习题答案
客户驾照号姓名驾照号住址驾照号电话车辆车辆编号车型车辆编号出厂年份车辆编号驾照号事故事故编号事故发生日期事故编号发生地点事故编号赔偿金事故编号车辆编号求出r的候选码
《数据库技术与应用》第 6章习题答案
第6章关系数据理论 1. 理解下列术语的定义: 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、码、主码、外码、全码、1NF、2NF、3NF、BCNF、4NF。 解:
函数依赖:设R(U)是属性集U上的关系模式。X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组 在X上的属性相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。 部分函数依赖:如果X→Y,但Y不完全函数依赖于X,则称Y对X 部分函数依赖(Partial Functional Dependency),记作:X Y。 完全函数依赖:如果X→Y,但对于X中的任意一个真子集,都有Y不依赖于,即,则称Y对X完全函数依赖(Full Functional Dependency),记作:X Y。 传递依赖:如果X→Y,Y→Z,且Y X,,则称Z对X传递函数依赖(Transitive Functional Dependency)。记作:X Z。 候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码(Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primarykey) 。 外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码K s相对应,则称F是基本关系R的外部 码(Foreign key),简称外码。 全码:最复杂的情况,整个属性组是码,称为全码(All-key)。 1NF:若一个关系模式R中每一个属性值都是一个不可再分的最小数据单元,则称关系模式满足第一范式,记作R1NF。 2NF:若R1NF,且每一个非主属性完全函数依赖于R的码,则R2NF。 3NF:关系模式R中若不存在这样的候选码X,属性组Y及非主属性Z(Z Y)使得X Y,Y Z成立,则称R3NF。 BCNF:关系模式R1NF。若对于R中的每一个函数依赖X Y且Y X,X必含有码,则RBCNF。 4NF:关系模式R∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y?X),X 都含有码,则称R∈4NF。 2. 下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明。 (1) 任何一个二目关系是属于3NF的。 (2) 任何一个二目关系是属于BCNF的。 (3) 任何一个二目关系是属于4NF的。 (4) 当且仅当函数依赖A B在R上成立,关系R(A,B,C)等于投影R1(A,B)和R2(A,B)的连接。 (5) 若R.A R.B,R.B R.C则R.A R.C。 (6) 若R.A R.B,R.A R.C则R.A R.(B,C)。 (7) 若R.B R.A,R.C R.A则R.(B,C)R.A。 (8) 若R.(B,C)R.A,则R.B R.A,R.C R.A。 解:

数据库应用基础

数据库应用基础

4.1 数据库系统概述-关系数据库

Access
Microsoft公司开发 桌面式关系数据库管理系统 软件平台:Windows 适于在微机上开发小规模的简单应用系统

Foxpro
Microsoft公司开发 软件平台:Windows 提供数据管理与系统开发集成环境 适于在微机上开发小规模的数据库应用系统

参看实例
计算机 总分
6.2 Acess简介-概述 Access的主要对象
第六章 数据库应用基础
本章主要内容:
数据库系统概述 Access简介
SQL语言简介
4.1 数据库系统概述-基本概念


数据
数据是将现实世界中的各种信息的可以识别符号。

数据处理
利用计算机对各种形式的数据进行采集、存储、 加工、计算、分类、编码、检索、传输、输出等处理。 目的是从大量的、原始的数据中抽取和推导出对人们有 价值的信息以作为行动和决策的依据。
4.1 数据库系统概述-数据模型
实体及实体间联系的表示(E-R图)
• • • • • 用矩形框表示实体集,框内写上实体名 用椭圆形框表示属性,属性名写在框内 用菱形框表示实体集之间的联系,菱形框内写上联 系名 属性与实体集之间用无向边连接 在线段边上标上联系种类
实体
属性
联系
实体与属性之间的连线
4.1 数据库系统概述-数据模型

数据模型分类
• 用模型 网状模型
• 用网状模型创建的数据库是网状数据库
关系模型
• 用关系模型创建的数据库是关系数据库
面向对象模型
• 用面向对象模型创建的数据库是面向对象数据库
4.1 数据库系统概述-关系模型

第6章 数据库系统及其应用-计算机导论(第3版)-黄国兴-清华大学出版社

第6章 数据库系统及其应用-计算机导论(第3版)-黄国兴-清华大学出版社
环境。
3.数据库管理员
对数据库进行规划、设计、协调、维护和管理的工 作人员。
4. 数据库应用系统
是使用数据库语言开发的、能够满足数据处理需求的应 用系统。
5. 用户 6 . 数据库系统
是指在计算机系统中引入数据库后的系统,包括以上5 个部分。
应用程序员
最终用户



应用系统


应用开发工具


DBMS
一、 人工管理阶段
人工管理阶段是指计算机诞生的初期, 即20世50年代后期之前,这个时期的计算 机主要用于科学计算。从硬件看,没有磁盘 等直接存取的存储设备;从软件看,没有操 作系统和管理数据的软件,数据处理方式是 批处理。
这个时期数据管理的特点是:
1. 数据不保存
该时期的计算机主要应用于科学计算,一 般不需要将数据长期保存,只是在计算某一 课题时将数据输入,用完后不保存原始数据, 也不保存计算结果。
2. 没有对数据进行管理的软件系统
程序员不仅要规定数据的逻辑结构,而且 还要在程序中设计物理结构,包括存储结构、 存取方法、输入输出方式等。因此程序中存取 数据的子程序随着存储的改变而改变,数据与 程序不具有一致性。
3. 没有文件的概念 数据的组织方式必须由程序员自行设计。
4. 一组数据对应于一个程序,数据是面向应 用的
பைடு நூலகம்
二、 文件系统阶段
3. 文件的形式已经多样化
由于已经有了直接存取的存储设备,文 件也就不再局限于顺序文件,还有了索引文 件、链表文件等,因而,对文件的访问可以 是顺序访问,也可以是直接访问。 4. 数据的存取基本上以记录为单位
三、 数据库系统阶段
数据库系统阶段是从60年代后期开始的。在这一阶 段中,数据库中的数据不再是面向某个应用或某个程 序,而是面向整个企业(组织)或整个应用的。 数据库系统阶段的特点是: 1. 采用复杂的结构化的数据模型

大学计算机基础第六章

大学计算机基础第六章

大学计算机基础第六章第六章数据库技术基础1. 数据管理技术经历以下三个阶段:人工管理阶段(50年代中期以前);文件系统阶段(50 年代后期到60年代中期);数据库系统阶段(60年代后期以来)。

人工管理阶段当时外存没有磁盘等直接存取的存储设备;软件没有操作系统,数据的处理是批处理。

人工管理数据具有如下特点:1)数据不保存2)数据需要由应用程序自己管理,没有相应的软件来处理数据3)数据不共享4)数据不具有独立性。

文件系统阶段50年代后期到60年代中期,在操作系统中有专门的数据管理软件,一般称为文件系统。

文件系统是数据库系统发展的初级阶段。

用文件系统管理数据具有如下特点:1)数据可长期保存2)简单的数据管理功能3)数据共享性差4)数据的独立性差。

数据库系统阶段60年代末期,人们对文件系统进行了扩充,研制了一种结构化的数据组织和处理方式,才出现了真正的数据库系统。

数据库系统的基本特点如下:1)数据的集成性2)数据的高度共享性与低冗余性3)数据独立性高2. 数据的独立性包括:①物理独立性:是指数据的物理结构的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的改变。

②逻辑独立性:是指数据的总体逻辑结构改变时,如修改数据模式、改变数据间的联系等,不需要修改相应的应用程序。

3.数据库的基本术语(1)数据(Data)定义:数据是描述事物的符号记录。

数据的表现形式不仅是数字,还包括字符(文字和符号)、图表(图形、图像和表格)及声音、语言等。

信息是从原始数据中经过筛选、提炼等加工后,产生的对决策有影响的数据。

(2)数据库(Database)定义:数据库(DB)是长期储存在计算机内的、有组织的、可共享的数据的集合。

数据库有以下特点:1)数据结构化2)实现数据共享3)减少数据的冗余4) 数据独立。

(3)数据库管理系统(Databbase Management System简称DBMS)定义:数据库管理系统它是位于用户和操作系统(OS)之间的一层数据管理软件,负责数据库中数据组织、数据操纵、数据维护、数据控制及保护和数据接口等。

第六章 数据库管理系统Access2010

第六章 数据库管理系统Access2010

6.1.2 数据库系统的基本概念
5. 数据库系统(Data Base System,DBS) 数据库系统是由硬件系统、 数据库管理系统、数据库、相关 软件及人员等构成的人—机系统。 其中,相关软件是指除了数据库 管理系统以外的软件,包括操作 10 系统、编译系统以及应用软件开
6.1.2 数据库系统的基本概念
6. 数据库应用系统(Data Base Application System,DBAS) 数据库应用系统是指系统开 发人员利用数据系统资源开发出 来的面向某一类实际应用的应用 软件系统。它是一个人机交互系 统,用户可以通过该数据库应用 系统对数据库进行操作。
11
6.1.3 关系数据模型
1.关系数据模型的数据结构 • 关系模型是用二维表的形式来表示实体和实体间联系的数据模型,从 用户观点来看关系的逻辑结构是一张二维表。例如学生的基本信息表 就是一个关系。
17
6.1.3 关系数据模型
⑴传统的集合运算 ①并 设有两个关系R和S,它们具有相同 的结构。R和S的并是由属于R或属 于S的元组组成的集合。 ②差 设有两个关系R和S,它们具有相同 的结构。R和S的差是由属于R但不 属于S的元组组成的集合。 18
6.1.3 关系数据模型
⑵专门的关系运算
①选择运算 从关系中找出满足给定条件的诸 元组称为选择。其中的条件是以逻辑 表达式给出的,该逻辑表达式的值为 真的元组将被选取。这是从行的角度 进行的运算,即水平方向抽取元组。 经过选择运算得到的结果元组可以形 成新的关系,其关系模式不变,但其 中元组的数目不大于原来的关系中元 组的个数,它是原关系的一个子集。 19
6.3 SQL语言简介
4
6.1 数据库系统概 述 6.1.1 数据管理技术的发

第6章 数据库的安全技术

第6章 数据库的安全技术
Server的安全体系和安全认证 6.5.1 SQL Server的安全体系和安全认证
Server的安全认证 2. SQL Server的安全认证
当SQL Server在Windows环境中运行时,SQL Server 2000提供了下面两种确认用户的认证模式: (1)Windows认证模式 Windows认证模式利用Windows操作系统对于用户登录 和用户帐号管理的安全机制,允许SQL Server也可以使用 Windows的用户名和口令。用户只需要通过Windows的认 证,就可以连接到SQL Server。
第六章数据库安全技术
6.3 数据库的数据保护
6.3.1 数据库的安全性
3.数据分类 数据库系统对安全性的处理是把数据分级。为每一数 据对象(文件,或字段等)赋予一定的保密级。 例如;绝密极、保密级、秘密级和公用级。对于用户, 成类似的级别。系统便可规定两条规则: (1)用户1只能查看比他级别低的或同级的数据。 (2)用户1只能修改和他同级的数据。
第六章数据库安全技术
6.3 数据库的数据保护
6.3.1 数据库的安全性
4.数据库加密 (3)数据库加密对数据库管理系统原有功能的影响 1)无法实现对数据制约因素的定义 ; 2)失去密文数据的排序、分组和分类作用; 3)SQL语言中的内部函数将对加密数据失去作用; 4)DBMS的一些应用开发工具的使用受到限制。
第六章数据库安全技术
6.1 数据库系统的组成
3.数据库特性 • 多用户 • 高可用性 • 频繁的更新 • 大文件 • 安全性与可靠性问题复杂 很 多 数 据 库 应 用 于 客 户 机 / 服 务 器 (Client / Server)平台。在Server端,数据库由Server上的DBMS 进行管理。由于Client/Server结构允许服务器有多个 客户端,各个终端对于数据的完整性和一致性要求很高, 这就涉及到数据库的安全性与可靠性问题。

第六章 物流数据库技术与数据挖掘

第六章 物流数据库技术与数据挖掘
13
国家级十二五规划教材配套资源
第六章物流数据库技术与数据挖掘
1 数据库基础知识
(3)数据库管理系统的组成
数据库系统(Database System, DBS)是指在计算机系统中引入数据 库之后组成的系统,是用来组织和存 取大量数据的管理系统。数据库系统 是由计算机系统(硬件和基本软件)、 数据库、数据库管理系统(及其开发 工具)、应用系统和有关人员(数据 库管理员、应用设计人员、最终用户) 组成的具有高度组织性的总体。
易于转换 关系、
网状、层次
E-R图
国家级十二五规划教材配套资源
第六章物流数据库技术与数据挖掘
ቤተ መጻሕፍቲ ባይዱ
1 数据库基础知识
(4)数据模型
2)数据模型的组成要素 数据模型是由数据结构、数据操作和数据的约束条件三部分组成的。 数据结构是所研究对象的集合,这些对象是数据库的组成成分,如表中的字段、
名称等。数据结构分为两类:一类是与数据类型、内容、性质有关的对象;一类是与 数据之间联系有关的对象。
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合, 包括操作及有关的操作规则。数据库的操作主要有检索和更新两大类。数据模型必须 定义数据操作的确切含义、操作符号、操作规则及实现操作的语言。
数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据 及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变 化,以保证数据的正确、有效和相容。
(1)数据管理模式
典型GIS空间数据文件存储形式: (1)MapInfo 数据文件
*.tab:头文件,软件版本号、存储坐标投影、地图 边界、属性项名等,是ASCII码文件。
*.map:图形文件,存储所有GIS图形。 *.id :索引文件,存储图形与属性的关联关系。 *.dat:属性文件,存储所有属性项值。 (2)ArcView shape数据文件 *.shp: 图形文件 *.dbf:属性文件 *.shx:索引文件

大数据导论第六章 大数据存储技术

大数据导论第六章 大数据存储技术


主要的数据库产品
数据库根据存储的数据类型不同主要分为关系型数据库(SQL)与非关系型数据库(NoSQL),其中非关系型数据库中包含4种类 型:列式数据库、键值数据库、图像图形数据库、面向文档数据库。

6.1 数据存储概述
(1)关系型数据库
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念 和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格, 该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多 不同的方式被存取或重新召集而不需要重新组织数据库表格。主流的关系数据库有 Oracle、Db2、SQL Server、Sybase、MySQL等。其优势是容易扩充,且在最初的数据库 创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。
PART 02 分布式文件系统
相对于传统的本地文件系统而言,分布式文件系统(Distribute File System,DFS)是通过网络实现文件在多台主机上进行分布 式存储的文件系统。
6.2.1 分布式文件系统设计思路
(1)主服务器也称为元数据服务器、名字服 务器,通常会配置备用主服务器以便故障时 接管服务,也节点等。 (3)多个客户端,客户端可以是各种应用服 务器,也可以是终端用户。
6.1 数据存储概述
(3)键值数据库
键值数据库即Key-Value存储,简称KV存储。它是NoSQL存储的一种方式。它的数据 按照键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系业务 关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写 性能。典型的产品有亚马逊的DynamoDB、Redis。优势是快速查询,劣势是存储的数据 缺少结构化。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

06 - 13/30
6.3 数据模型
计算机科学与工程系
6.3.3 关系模型 关系数据模型是由IBM公司的E.F.Codd于1970年提 出的,关系模型的“关系”具有特定的含义。
层次模型描述数据之间的从属层次关系 网状模型描述数据之间的多种从属的网状关系 特指虽具有相关性而“非从属性”的平行序列数据集合关 系 关系模型用二维表表示事物间的联系
06 - 3/30
6.1 数据库技术基本概念
计算机科学与工程系
6.1.3 数据库 数据库是数据库系统的核心部分,是数据库系统的 管理对象。 数据库:是指以一定的组织方式将相关的数据组织 在一起,长期存放在计算机内,可为多个用户共享, 而应用程序彼此独立,统一管理的数据集合。
06 - 4/30
计算机科学与工程系
“学生信息管理系统”
06 - 20/30
6.4 关系数据库设计
6.4.4 逻辑设计
计算机科学与工程系
逻辑设计的任务是将概念模型转换为特定DBMS 所支持的数据模型,并对其进行优化。 转换规则(略) “学生信息管理系统”
学院(学院编号、学院名称、院长姓名、电话、地址)
系(系编号、系名称、系主任、电话、教研室个数、学院编号) 教研室(教研室编号、教研室名称、教师人数、系编号) 教师(教师编号、姓名、性别、职务、教研室编号) 班级(班级编号、班级名称、班级人数、班长姓名、专业、系编 号) 学生(学号、姓名、性别、出生年月、籍贯、班级编号)
计算机科学与工程系
增加一些其它的功能,例如“登录”,“学生信息查询”,“系 信息管理”,“班级信息管理”等模块。
06 - 28/30
6.5 数据库在管理信息系统中的应用
6.5.3 实现“学生管理信息系统”(3)
计算机科学与工程系
“对学生成绩”的管理
06 - 29/30
6.5 数据库在管理信息系统中的应用
实体型用矩形框来表示,框内标明实体名称; 属性用椭圆框表示,框内标明属性名称,并用无向边与相应实体连接 起来,属性为键的用下划线表示; 联系用菱形框表示,框内标明联系名,也用无向边分别与相关实体连 接起来,无向边上还标明联系的类型。
06 - 19/30
6.4 关系数据库设计
6.4.3 概念设计(2)
6.5.3 实现“学生管理信息系统”(4)
计算机科学与工程系
把学生的就业信息也加入,并对就业信息等进行分析,为学校的 教学、招生、就业指导等工作提供一个决策的依据
06 - 30/30
06 - 26/30
6.5 数据库在管理信息系统中的应用
6.5.3 实现“学生管理信息系统”(1)
计算机科学与工程系
增加一些其它的功能,例如“登录”,“学生信息查询”,“系信息管 理”,“班级信息管理”等模块。
06 - 27/30
6.5 数据库在管理信息系统中的应用
6.5.3 实现“学生管理信息系统”(2)
06 - 15/30
6.4 关系数据库设计
6.4.1 设计步骤
需求分析 需求说明 概念设计 概念模式
计算机科学与工程系
应用需求(信息、处理需求)
逻辑设计
逻辑模式 硬件、操作系 统特性 数据库物理设计 物理模式 数据库实施 数据库 数据库运行维护 数据库设计基本步骤
DBMS特性
06 - 16/30
6.4 关系数据库设计
6.1 数据库技术基本概念
6.1.4 数据库管理系统
计算机科学与工程系
数据库管理系统(Database Management System, DBMS)是管理数据库的软件的集合,是数据库系统 的核心。
06 - 5/30
6.1 数据库技术基本概念
6.1.5 数据库系统
计算机科学与工程系
数据库系统(Database System,DBS)是指引入了数据库 技术的计算机系统,包括计算机硬件、数据库、数据库管理系 统及其开发工具和数据库应用程序等软件以及人员。
课程(课程编号、课程名、学时、学分、学期、教师编号、教室)
选修成绩(学号、课程编号、成绩)
06 - 21/30
6.4 关系数据库设计
6.4.5 物理设计
计算机科学与工程系
数据库物理设计是根据DBMS和计算机系统所提供的手段, 为逻辑数据模型选取一个最适合应用环境的物理结构,即物 理模式,包括存储结构和存取方法等。
6.1.1 数据 数据(Data)是指人们用来反映客观世界而记录下 来的可以鉴别的数字、字母或符号,可以存储在某 一种媒体上。 数据是信息的载体,是描述客观事物的数字、 字符或其它符号的集合。 在计算机领域,数据泛指一切能够输入计算机 并被计算机程序处理的符号,可以是数值、字符、 图形、声音或视频等。
6.2.3 Oracle
计算机科学与工程系
06 - 10/30
6.3 数据模型
计算机科学与工程系
面对“海量”的数据,如何管理和储存,这需 要一个“模型”,按照一定的组织方式进行管 理。 数据模型是对数据间联系和约束条件的全局性 描述。 常用的支持数据库系统的数据模型有层次模型、 网状模型、关系模型。 数据库的性质是由数据模型决定的。 Access数据库管理系统是支持关系模型特性的, 所以由Access创建的数据库为关系数据库。
06 - 17/30
6.4 关系数据库设计
6.4.2 需求分析(2)
计算机科学与工程系
“学生信息管理系统”
信息要求:每个学校是以学院为单位进行管理的,学院又分为系,系分 为教研室,教研室聘请教师,系开设班级,学生按专业分班,学生学习 的课程都有一个成绩。其中,涉及到的信息,学院有“学院编号、学院 名称、院长姓名、电话、地址”;系有“系编号、系名称、系主任、电 话、教研室个数”、教研室有“教研室编号、教研室名称、教师人数”; 教师有“教师编号、姓名、性别、职称”;班级有“班级编号、班级名 称、班级人数、班长姓名、专业”;学生有“学号、姓名、性别、出生 年月、籍贯”;课程有“课程编号、课程名、学时、学分、学期、教 室”。 处理要求:对学院、系、教研室、教师、班级、学生、成绩等进行管理 (包括增加、修改、删除);打印学生成绩报表。 安全性要求:鉴于信息的敏感性,要求按照不同身份对不同信息进行管 理或者对信息进行保护。例如进入时先“登录”。 完整性要求:一个学院有多个系;一个系有多个教研室,但只有一个系 主任;一个教研室有多个老师;一个系有多个班;一个班有多个学生, 但每个学生只能属于某个班;学生可以选修多门课,但每门课学生只有 一个成绩,每门课可以被多个学生选修,每门课可以由多个教师授课。
06 - 11/30
6.3 数据模型
6.3.1 层次模型
计算机科学与工程系
层次模型(Hierarchical Model)是数据库阶段出现最早的数据 模型。 典型的层次模型数据库系统是IBM公司1969年推出的IMS数 据库管理系统。 层次模型以记录类型为结点的有向树,树中的结点表示记录 类型,结点间的有向连线表示记录类型间的双亲-子女联系。
第六章
数据库技术
计算机科学与工程系
本章主要介绍数据库技术的基 本概念,包括数据、数据处理、数 据库、数据库管理系统以及数据库 系统等,以及常用数据库管理系统 和数据模型,另外还介绍数据库的 设计过程及数据库在管理信息系统 中的应用等内容。
06 - 1/30
6.1 数据库技术基本概念
计算机科学与工程系
表6.1 某学校学生信息表 性别 男 女 表6.2 某学校学生分布情况表 姓名 王一 林二 性别 男 女 姓名 王一 林二 年龄 24 22 班级 01会计 02网工 年龄 24 22
李三
陈四


21
23
03软工
04商务
李三
陈四


21
23
06 - 14/30
6.3 数据模型
计算机科学与工程系
6.3.3 关系模型——关系模型的基本概念 关系(Relation) 、关系模式(Relation Scheme) 、元组 (Tuple)、属性(Attribute)、变域(Domain)、分量、主 键(Primary Key)、外键(Foreign Key)
计算机科学与工程系
数据库实施是根据逻辑设计和物理设计的结果,在计算机上建立起实际 数据库结构、装入数据、测试和试运行的过程。
建立实际数据库结构 装入试验数据对应用程序进行测试 装入实际数据,进入试运行状态
“学生信息管理系统”
对“学生”表进行实施
06 - 23/30
6.4 关系数据库设计
06 - 12/30
6.3 数据模型
6.3.2 网状模型
计算机科学与工程系
网状模型(Network Model)展现现实世界的各种非层次关系。 网中节点之间的联系不受层次限制 网状模型的优点是能够更为直接地描述现实世界;具有良好 的性能,存取效率高。其主要缺点是结构复杂,不利于扩充, 不容易实现。
06 - 18/30
6.4 关系数据库设计
6.4.3 概念设计(1)
计算机科学与工程系
概念设计的目标是产生反映全部组织需求信息的数据库概念 结构,即概念模式。 概念模型的名词术语:①实体(Entity);属性(Attribute);③实 体型(Entity Type);④实体集(Entity Set);⑤键(Key);⑥联系 (Relationship)。 概念模型用实体-联系模型表示,简称E-R模型(EntityRelationship Model),而E-R模型用E-R图表示 。 在E-R图中
06 - 2/30
6.1 数据库技术基本概念
6.1.2 数据处理
计算机科学与工程系
相关文档
最新文档