数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能.
数据模型通常由数据结构、数据操作和完整性约束三部分组成。
实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型
数据库系统的三级模式结构由外模式、模式和内模式组成。数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像.正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成
sQL 语言的特点(l)综合统一. (2)高度非过程化。 (3)面向集合的操作方式. (4)以同一种语法结构提供两种使用方式. (5)语言简捷,易学易用。
基本表视图.两者的区别和联系基本表是本身独立存在的表,在 sQL 中一个关系就对应一
个表。视图是从一个或几个基本表导出的表.视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中.视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。实现数据库安全性控制的常用方法和技术有:用户标识和鉴别存取控制视图机制,审计,数据加密。
数据库的完整性是指数据的正确性和相容性.完整性约束条件是指数据库中的数据应该满足的语义约束条件。参照完整性体现在外码,用户定义的完整性数据类型定义范围。DBMS 的完整性控制机制应具有三个方面的功能: ( l )提供定义完整性约束条件的机制; ( 2 )提供完整性检查的方法;( 3 )违约处理:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息
管理要求和数据操作要求。设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第 1 步是抽象数据并设计局部视图,第 2 步是集成局部视图,得到全局的概念结构。
规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础.
求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1'(SPJ))
求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
求供应工程J1零件为红的供应商号码SNO:πSno(σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ))
求没有使用天津供应商生产的红零件的工程号
JNOπJno(SPJ)— πJNO(σcity=‘天津'∧Color=‘红‘ (S∞SPJ∞P)
求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
对于 S 表: S ( SNO , SNAME , STATUS , CITY )
建 S 表CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4));
对于 P 表: P ( PNO , PNAME , COLOR , WEIGHT );
建 P 表CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT)对于 J 表: J ( JNO , JNAME , CITY) ;
建 J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))
对于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ;
建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)
CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT))
( l )求供应工程 Jl 零件的供应商号码 SNO ;
SELECT DIST SNO FROM SPJ WHERE JNO=’J1’
( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;
SELECT DIST SNO FROM SPJ WHERE JNO='J1’ AND PNO=’P1’数据库是软件吗
( 3 )求供应工程 Jl 零件为红的供应商号码 SNO ;
SELECT SNO FROM SPJ,P WHERE JNO=’J1’ AND SPJ。PNO=P。PNO AND COLOR='红'
( 4 )求没有使用天津供应商生产的红零件的工程号 JNO ;
SELECT DIST JNO  FROM SPJ   WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S
WHERE S。CITY='天津’ AND COLOR='红' AND S。SNO=SPJ。SNO AND P.PNO=SPJ.PNO).
( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ;
由于VFP不允许子查询嵌套太深,将查询分为两步
A、查询S1供应商供应的零件号
SELECT DIST PNO FROM SPJ WHERE SNO='S1’结果是(P1,P2)
B、查询哪一个工程既使用P1零件又使用P2零件。
SELECT JNO  FROM SPJ  WHERE PNO=’P1’   AND JNO IN (SELECT JNO
FROM SPJ   WHERE PNO=’P2’)
(1)出所有供应商的姓名和所在城市。
      SELECT SNAME,CITY FROM S
(2)出所有零件的名称、颜、重量。
SELECT PNAME,COLOR,WEIGHT FROM P
(3)出使用供应商S1所供应零件的工程号码.
        SELECT DIST JNO FROM SPJ WHERE SNO='S1’
(4)出工程项目J2使用的各种零件的名称及其数量。
SELECT PNAME, QTY FROM SPJ,P
WHERE P。PNO=SPJ.PNO AND SPJ。JNO=’J2’
(5)出上海厂商供应的所有零件号码。
SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=’上海’
(6)出使用上海产的零件的工程名称.
SELECT JNAME FROM SPJ,S,J
WHERE S。SNO=SPJ。SNO AND S。CITY='上海' AND J.JNO=SPJ。JNO
(7)出没有使用天津产的零件的工程号码。
注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=’天津’) 适用于JNO是唯一或不唯一的情况。
    注意: SELECT DIST JNO FROM SPJ,S WHERE S。SNO=SPJ.SNO AND S。CITY〈>'天津'适用于JNO是唯一的情况
(8)把全部红零件的颜改成蓝。
UPDATE P SET COLOR='蓝’ WHERE COLOR=’红’
(9)由S5供给J4的零件P6改为由S3供应.
    UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO=’J4’ AND PNO=’P6’
(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
    A、DELETE FROM S WHERE SNO='S2’
    B、DELETE FROM SPJ WHERE SNO=‘S2’
(11)请将(S2,J6,P4,200)插入供应情况关系。
    INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4',200)
请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY).
CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J
WHERE SPJ.JNO=J。JNO AND J。JNAME=’三建’
针对该视图VSP完成下列查询:
(1)出三建工程项目使用的各种零件代码及其数量。
SELECT DIST PNO,QTY FROM VSP
(2)出供应商S1的供应情况.
SELECT DIST * FROM VSP WHERE SNO=’S1’