精华内容
下载资源
问答
  • 图书管理数据库系统

    万次阅读 多人点赞 2020-01-29 19:22:44
    发本文的原因:本文是一个很经典的图书管理系统设计,大学本科实验,用...该实验设计开发一个简单的图书管理数据库系统,包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。此系统用户面向图书管理员...

    发本文的原因:本文是一个很经典的图书管理系统设计,大学本科实验,用例图,流程图真香!包含全部设计架构和源代码 ,可直接使用。

    链接:https://pan.baidu.com/s/16Wda96TQ_4MWHj5cXNhZaA 
    提取码:ug6z

    1  系统简介

    该实验设计开发一个简单的图书管理数据库系统,包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。此系统用户面向图书管理员和借阅读者,图书馆管理员可以完成图书、读者、图书类型、学科类型、读者类型等基本信息的增加、删除和修改,可以制定借阅规则;读者可以进行图书的借阅、续借、归还、预约的确认等操作。

    系统开发技术及工具:Java JSP HTML Oracle数据库 tomcat服务器 Windows10系统  PC机

    2  系统分析

    2.1 功能模块简介

     

    2.2 功能需求描述

    • 借阅功能:

    图书出借时考虑三个问题:

    1. 读者是否因为超期、罚款等情况被关闭了借阅权限;
    2. 读者是否已经借满其限额。
    3. 该书是否不在库中;

    如果不存在以上情况,则可以出借。

    • 预约功能:

    读者想借的书如果不在库中(已经被出借),读者可以预约该图书,当该图书被归还时系统给读者发送邮件,提醒他来借阅,此时其他读者也可以借阅该书。

    • 续借功能:

    读者还书的时候可以续借该图书,续借的过程包括先执行还书操作,再执行借阅操作。

    • 发送催还邮件:

    管理员可以发送邮件提醒读者到期还书。

    • 读者管理功能:

    对读者信息进行查看、添加、修改、删除。将读者分为不同类别,赋以不同权限。

    • 系统管理功能:

    对管理员的登录账号、密码进行添加、修改、删除。

    • 借阅规则管理功能:

    对图书借阅规则进行查看、添加、修改、删除。

    2.3 系统用例图

     

    3 系统数据库设计

    3.1 系统概念模型设计

    数据库需要描述的数据信息包括以下几种:

    (1)读者信息

    (2)书籍信息

    (3)管理员信息

    (4)藏书分类信息

    (5)图书学科分类信息

    (6)读者分类信息

    (7)读者与书籍之间的关系(借阅关系E-R图)

    (8) 读者类型与书籍类型之间的关系(规则关系E-R图)

    这些数据项之间的关系可以用下列E-R图表示:

     

    3.2 数据库详细设计

    本系统共设计9个表、6个序列、4个存储过程、3个函数、4个触发器。

    针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的9个数据表

    1. 读者信息

    属性:读者编号,读者姓名,联系电话,邮箱地址,所在系,权限状况,读者类型,备注

    主键:读者编号

    2.书籍信息

    属性:图书编号,ISBN,书名,作者,出版社,出版日期,简介,封面图片,价格,学科类型,藏书类型

    主键:图书编号

    3.管理员信息

    属性:编号,账号,密码

    主键:编号

    4)读者类型

    属性:编号,类型,说明

    主键:编号

    5)藏书类型

    属性:编号,类型,说明

    主键:编号

    6)学科类型

    属性:编号,类型,说明

    主键:编号

    7)借阅信息

    属性:图书编号,读者编号,借阅日期,应还日期

    主键:图书编号,读者编号

    8)预约信息

    属性:图书编号,读者编号,预约日期

    主键:图书编号,读者编号

    9)借阅规则

    属性:图书类型,读者类型,期限,册数,续借次数,逾期罚款

    主键:图书类型,读者类型

    6个序列:

    读者编号、图书编号、读者类型编号、藏书类型编号、学科编号、管理员编号

    4个存储过程:

      • 检查借阅是否超期的存储过程;
      • 判断读者可否进行借阅的存储过程;
      • 计算超期罚款的存储过程;
      • 将超期未还的读者借阅权限关闭的存储过程;

    4个函数:

      • 计算图书应归还日期的函数;
      • 计算读者可借阅图书册书的函数;
      • 计算读者已经借阅某类型图书的册数的函数;
      • 计算读者应交欠费的函数。

    4个触发器:

      • 删除藏书类型的触发器;
      • 删除读者类型的触发器;
      • 删除图书的触发器;
      • 删除读者的触发器。

     

    3.3 表设计

    1、数据库表逻辑结构设计。

    表1 读者表(reader)

     

    列名

    类型

    长度

    约束

    备注

    readerid

    number

    11

    主键

    读者编号

    name

    varchar2

    10

    非空

    读者姓名

    telephone

    varchar2

    15

     

    联系电话

    email

    varchar2

    30

     

    邮箱地址

    dept

    varchar2

    20

     

    所在院系

    right

    number

    1

    取值为0或1

    借阅权限

    readertype

    number

    11

    外键

    读者类型

    demo

    varchar2

    1000

     

    说明

    2 图书表(book)

     

    列名

    类型

    长度

    约束

    备注

    bookid

    number

    11

    主键

    书籍编号

    bookname

    varchar2

    20

    非空

    书籍名称

    author1

    varchar2

    20

    非空

    书籍作者

    author2

    varchar2

    20

     

    书籍作者

    author3

    varchar2

    20

     

    书籍作者

    pubdate

    date

     

     

    出版日期

    publish

    varchar2

    30

     

    出版社

    photo

    varchar2

    100

     

    图片地址

    abstract

    varchar2

    4000

     

    内容简介

    Price

    number

    7,2

    非空

    价格

    ISBN

    varchar2

    17

    非空

    书籍ISBN码

    bookclass

    number

    11

    外键

    学科类型

    booktype

    number

    11

    外键

    藏书类型

     

    表3 管理员用户表(admin)

    列名

    类型

    长度

    约束

    备注

    Id

    number

    11

    主键

    管理员编号

    username

    varchar2

    10

    非空

    管理员帐号

    password

    varchar2

    11

    非空

    帐号密码

    4 读者类型(reader_type)

    列名

    类型

    长度

    约束

    备注

    typeid

    number

    11

    主键

    类型编号

    typename

    varchar2

    20

    非空

    类型名称

    demo

    varchar2

    100

     

    说明

    5 藏书类型表(book_type)

    列名

    类型

    长度

    约束

    备注

    typeid

    number

    11

    主键

    类型编号

    typename

    varchar2

    20

    非空

    类型名称

    demo

     varchar2

    100

     

    说明

    6 学科类型表(book_class)

    列名

    类型

    长度

    约束

    备注

    classid

    number

    11

    主键

    类型编号

    classname

    varchar2

    20

    非空

    类型名称

    demo

     varchar2

    100

     

    说明

     

    表7 借阅表(borrow)

    列名

    类型

    长度

    约束

    备注

    readerid

    number

    11

    联合主键,外键

    读者编号

    bookid

    number

    11

    联合主键,外键

    图书编号

    borrowdate

    date

     

     

    出借日期

    due

    date

     

     

    应还日期

    8 预约表(preconcert)

    列名

    类型

    长度

    约束

    备注

    readerid

    number

    11

    联合主键,外键

    读者编号

    bookid

    number

    11

    联合主键,外键

    图书编号

    predate

    date

     

     

    预约日期

    9 规则表(rule)

    列名

    类型

    长度

    约束

    备注

    booktype

    number

    11

    联合主键,外键

    藏书类型号

    readertype

    number

    11

    联合主键,外键

    读者类型号

    days

    number

    5

    非空

    期限(天)

    num

    number

    5

    非空

    册数(本)

    renew

    number

    5

    非空

    续借次数(次)

    overtime

    number

    5,2

    非空

    逾期处罚(元/册/天)

     

     

    2、创建数据库表的脚本。

    (1)创建BOOK_ClASS

    create table book_class(

    classid number(11) primary key,

    classname varchar2(20) not null,

    demo varchar2(100) 

    );

    (2)创建admin

    create table admin(

    id number(11) primary key,

    username varchar2(10) not null,

    password varchar2(11) not null

    );

    (3)创建reader_type

    create table reader_type(

    typeid number(11) primary key,

    typename varchar2(20) not null,

    demo varchar2(100)

    );

    (4)创建reader

    create table reader(

    readerid number(11) primary key,

    name varchar2(10) not null,

    telephone varchar2(15),

    email varchar2(30),

    dept varchar2(20),

    right number(1) check(right=0 or right=1),

    readertype number(11) references reader_type(typeid),

    demo varchar2(1000)

    );

    (5)创建book_type

    create table book_type(

    typeid number(11) primary key,

    typename varchar2(20) not null,

    demo varchar2(100)

    );

    (6)创建book

    create table book(

    bookid number(11) primary key,

    bookname varchar2(20) not null,

    author1 varchar2(20) not null,

    author2 varchar2(20),

    author3 varchar2(20),

    pubdate date,

    publish varchar2(30),

    photo varchar2(100),

    abstract varchar2(4000),

    price number(7,2) not null,

    isbn varchar2(17) not null,

    bookclass number(11) references book_class(classid),

    booktype number(11) references book_type(typeid)

    );

    (7)创建borrow

    create table borrow(

    readerid number(11),

    bookid number(11),

    borrowdate date,

    due date,

    primary key(readerid,bookid),

    foreign key (readerid) references reader(readerid),

    foreign key (bookid) references book(bookid)

    );

    (8)创建preconcert

    create table preconcert(

    readerid number(11),

    bookid number(11),

    predate date,

    primary key(readerid,bookid),

    foreign key (readerid) references reader(readerid),

    foreign key (bookid) references book(bookid)

    );

    (9)创建rule

    create table rule(

    booktype number(11),

    readertype number(11),

    days number(5) not null,

    num number(5) not null,

    renew number(5) not null,

    overtime number(5,2) not null,

    primary key(booktype,readertype),

    foreign key (booktype) references book_type(typeid),

    foreign key (readertype) references reader_type(typeid)

    );

     

    3.4 序列设计

    为了方便自动产生连续的读者编号、图书编号、读者类型编号、藏书类型编号、学科编号、管理员编号等字段,在数据库中分别用下列序列产生相应的编号。

    (1)create sequence seq_reader start with 1 increment by 1;

    (2)create sequence seq_book start with 1 increment by 1;

    (3)create sequence seq_reader_type start with 1 increment by 1;

    (4)create sequence seq_book_type start with 1 increment by 1;

    (5)create sequence seq_book_class start with 1 increment by 1;

    (6)create sequence seq_admin start with 1 increment by 1;

    3.5 视图设计

    为了方便查询读者借阅图书的情况及图书的借阅统计,创建下列视图。

    1. 创建名为“READER_BOOK_VIEW”的视图,包括读者信息、所借图书信息及借阅信息。

    CREATE OR REPLACE VIEW reader_book_view

    AS

    SELECT name,bookname,borrowdate,due,last_due  FROM readet,book,borrow

    WHWER reader.teadid=borrow.readid AND borrow.bookid=book.bookid;

    1. 创建名为“BOOK_TYPE_STAT_VIEW”的视图,包括各类图书的借阅统计信息。

    CREATE OR REPLACE VIEW book_type_stat_view

    AS

    SELECT booktype,COUNT(booktype)  FROM (

    SELECT readerid,borrow.booktype,booktype,borrowdate,due,last_due

    FROW borrow,book WHWER book.bookid=borrow.bookid)

    1. 存储过程设计

      1. 检查借阅是否超期的存储过程

    Create or replace procedure p_days_from_due(v_readerid number,v_bookid number,v_days out number)

    As

    Begin

    Select due –sysdate into v_days from borrow where readerid=v_readerid and bookid=v_bookid;

    Exception

    When others then

    v_days:=0;

    End;

    2.判断读者可否进行借阅的存储过程

    Create or replace procedure p_can_borrow(v_readerid in number, v_bookid in number, v_num out number)

    As

    V_right number;

    V_borrowed_num number;

    V_rule_num number;

    Begin

    Select right into v_right from reader where readerid=v_readerid;

    v_borrowed_num:=f_borrowed_num(v_readerid,v_bookid);

    v_rule_num:=f_rule_num(v_readerid,v_bookid);

    If v_right=1 then v_num:=0;

    Else

    v_num:=v_rule_num-v_borrowed_num;

    End if;

    Exception

     When others then

       v_num:=0;

    End;

    3.计算超期罚款的存储过程;

    Create or replace procedure p_timeover_money(v_readerid number,v_bookid number ,v_money out number)

    As

    V_days number;

    V_readertype number;

    V_booktype number;

    Begin

    p_days_from_due(v_readerid,v_bookid,v_days);

    Select booktype into v_booktype from book where bookid=v_bookid;

    Select readertype into v_readertype from reader where readerid=v_readerid;

    Select overtime*floor(abs(v_days)) into v_money from rule where readertype=v_readertype and booktype=v_booktype;

    Exception

    When others then

    v_money:=0;

    End;

    4.将超期未还的读者借阅权限关闭的存储过程

    Create or replace procedure p_cant_borrow(v_readerid in number, v_bookid in number, v_right out number)

    As

    V_right number;

    V_due date;

    V_next_date num;

    Begin

    Select right into v_right from reader where readerid=v_readerid;

    v_due:=f_borrowed_num(v_readerid,v_bookid);

    v_next_date:= to_date(sysdate,'yyyymmdd')-to_date(v_due,'yyyymmdd');

    If v_next_date >=0 then v_right=0;

    Else

    v_right=1;

    End if;

    Exception

    When others then

    v_right=0;

     

    3.7函数设计

    (1)计算图书应归还日期的函数。

    Create or replace function f_date_is_due(v_readerid number,v_bookid number)

    Return varchar2 as

    V_booktype number;

    V_readertype number;

    V_date varchar2(10);

    Begin

    Select booktype into v_booktype from book where bookid=v_bookid;

    Select readertype into v_readertype from reader where readerid=v_readerid;

    Select to_char(sysdate+days, 'yyyy-mm-dd') into v_date from rule where readertype=v_readertype and booktype=v_booktype;

    Return v_date;

    Exception

    /*尚未制定该类图书借阅规则*/

    When no_data_found then

    Select to_char(sysdate+30,’yyyy-mm-dd’) into v_date from dual;

    Return v_date;

    End;

     

    (2)计算读者可借阅图书册数的函数

    Create or replace function f_rule_num(v_readerid in number,v_bookid in number) return number

    As

    V_booktype number;

    V_readertype number;

    V_num number;

    Begin

    Select booktype into v_booktype from book where bookid=v_bookid;

    Select readertype into v_readertype from reader where readerid=v_readerid;

    Select num into v_num from rule where readertype=v_readertype and booktype=v_booktype;

    Return v_num;

    Exception

    /*尚未制定该类图书借阅规则*/

    When no_data_found then

    select max(num) into v_num from rule;

    return v_num;

    End;

     

    (3)计算读者已经借阅某类型图书的册数的函数

    Create or replace function f_borrowed_num(v_readerid number,v_bookid number)return number as

    V_num number;

    V_type number;

    Begin

    Select booktype into v_type from book where bookid=v_bookid;

    Select count(*) into v_num from book,borrow where book.bookid=borrow.bookid and readerid=v_readerid and booktype=v_type;

    Return v_num;

    End;

     

    (4)计算读者应交欠费的函数。

    create or replace function f_owned_money(v_readerid number)return number

    As

    v_fine number:=0.0;

    v_money number:=0.0;

    v_days number;

    v_borrow borrow%ROWTYPE;

    cursor c_borrow is select * from borrow where readerid=v_readerid;

    Begin

      for v_borrow in c_borrow loop

         p_days_from_due(v_borrow.readerid,v_borrow.bookid,v_days);

         if (v_days<0) then

            p_timeover_money(v_borrow.readerid,v_borrow.bookid,v_money);

            v_fine:=v_fine+v_money;

         end if;

      end loop;

      Return v_fine;

    End;

     

    3.8触发器设计

    (1)删除藏书类型的触发器。

    Create or replace trigger tr_delete_booktype

    Before delete on book_type for each row

    begin

    delete from book where booktype=:old.typeid;

    delete from rule where booktype=:old.typeid;

    End;

     

    (2)删除读者类型的触发器。

    Create or replace trigger tr_delete_readerype

    Before delete on reader_type for each row

    begin

    delete from reader where readertype=:old.typeid;

    delete from rule where readertype=:old.typeid;

    End;

     

    (3)删除图书的触发器。

    Create or replace trigger tr_delete_book

    Before delete on book for each row

    begin

    delete from borrow where bookid=:old.bookid;

    delete from preconcert where bookid=:old.bookid;

    End;

     

    (4)删除读者的触发器。

    Create or replace trigger tr_delete_reader

    Before delete on reader for each row

    begin

    delete from borrow where readerid=:old.readerid;

    delete from preconcert where readerid=:old.readerid;

    End;

     

    4.系统主要功能模块设计与实现

    4.1数据库的连接与访问

    1.注册驱动通过Class.forName()获取Oracle数据库驱动

    2.获取连接DriverManager.getConnection()

    3.获取数据库操作对象

    4.执行sql   executeQuery(sql); executeUpdate(sql); executeDelete(sql);

    5.处理查询结果集

    关键代码:

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //通过Class.forName()获取Oracle数据库驱动

    String url="jdbc:oracle:thin:@localhost:1521:orcl"; //数据库名,端口号

    String user="scott";        //用户名

    String password="tiger";     //密码

    conn=DriverManager.getConnection(url, user, password);  //建立连接

    5.1借书管理

    (1)功能页面列表

    (2)业务流程图 

    (3)核心代码

    String sql1="select * from borrow where bookid="+bookid;

    ResultSet rs1=dbCon.executeQuery(sql1);

    rs1.next();

    int y=rs1.getRow();

    if(y>0)

    {

    //该书未还

    out.print("<center>该书未还!<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }

    else

    {

    //判断该读者还能借几本书

    CallableStatement a=con.prepareCall("{call p_can_borrow(?,?,?)}");

    a.setInt(1,readerid.intValue()); 

    a.setInt(2, bookid.intValue());   

    a.registerOutParameter(3, Types.INTEGER);//输出

    a.execute(); 

    int  num=a.getInt(3);

     if(num>0)

     {

     

     //计算到期日期

     

    // 调用有一个in参数的函数; the function returns a VARCHAR

    CallableStatement cs = con.prepareCall("{? = call f_date_is_due(?,?)}");

    cs.registerOutParameter(1, Types.VARCHAR);

     

    cs.setInt(2, readerid.intValue());

    cs.setInt(3, bookid.intValue());

     

    cs.execute();

    String due = cs.getString(1);

     

    String sql="insert into borrow(readerid,bookid,borrowdate,due) values("+

    readerid+","+bookid+",sysdate,to_date('"+due+"','yyyy-mm-dd'))";

    System.out.println(sql);

     

    dbCon.executeUpdate(sql);

     

    out.print("<center>出借成功!<a href=javascript:history.go(-1)>继续借书</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }

     else

    {

    //该书不能出借

    out.print("<center>出借限额已满或读者无权限!<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");}}
    (4)界面实现

    5.2还书管理

    1. 功能页面列表

    (2) 业务流程图 

    3)核心代码

    //还书入库

    String sql1="delete from borrow where bookid="+bookid+" and readerid="+readerid;

            dbCon.executeUpdate(sql1);

    //判断该书是否超期

    CallableStatement  a=con.prepareCall("{call p_days_from_due(?,?,?)}");

    a.setInt(1,readerid.intValue()); 

    a.setInt(2, bookid.intValue());   

    a.registerOutParameter(3, Types.INTEGER);//输出

    a.execute(); 

    int  num=a.getInt(3);

     if(num>=0)

     {

     //还书未超期

    dbCon.executeUpdate(sql);

    out.print("<center>还书成功!<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }

     else

    {

     

    //计算超期罚款金额

    // 调用有一个OUT参数的存储过程; the procedure returns a NUMBER

    CallableStatement cs = con.prepareCall("{ call p_timeover_money(?,?,?)}");

    cs.setInt(1, readerid.intValue());

    cs.setInt(2, bookid.intValue());

    cs.registerOutParameter(3, Types.INTEGER);

    cs.execute();

    int m = cs.getInt(3);

    dbCon.executeUpdate(sql);

    out.print("<center>出借已超期!需缴纳罚款"+m+"元<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }


     
    6.总结 

      本次综合实验让我深刻的体会到 Oracle 的魅力所在,加深了我对 Oracle 数 据库的理解,提升了我对 Oracle 数据库的综合运用能力。例如,我是在本次实 验中才理解了序列的用法,并真正用到实践中来。Oracle 的索引、视图等提高 了 orale 的访问速度,序列提高了数据插入的速度。函数和存储过程简化了后端 代码的量同时提高了稳定性和安全性,触发器的设计保证了数据的一致性。一个 完整的开发流程让我看到了 Oracle 数据库在实际开发过程中相比 MySQL 的优势 所在。 本次实验同样用到了 tomcat 服务器、JSP 技术。作为一个轻量级的服务器 tomcat 较为适合小型项目部署。JSP 技术对于小型项目也挺适用,虽然没有实现 前后端分离,但是可以让功能的实现变得易于完成代码的编写,也易于理解。本 次实验所用图书管理系统数据库模型数据库表设计等很经典,其价值值得深入挖 掘探索,完全可以称为我们今后数据库设计的入门案例。 

    展开全文
  • 数据库系统---分布式数据库系统

    千次阅读 2018-08-23 11:57:41
    分布式数据库系统  近年来,随着计算机技术与网络技术的发展,特别是 Internet 的兴起,...分布式数据库(Distributed DataBase,DDB)比较确切的定义是:分布式数据库是由一组数据组成的,这组数据分布在计算...

    分布式数据库系统

        近年来,随着计算机技术与网络技术的发展,特别是 Internet 的兴起,分布式数据库系统得到了很快的发展和应用。

    1 分布式数据库的概念 

        分布式数据库系统是相对于集中式数据库系统而言的,是将数据库技术与网络技术相结合的产物。分布式数据库(Distributed DataBase,DDB)比较确切的定义是:分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个结点也能通过网络通信子系统执行全局应用。负责分布式数据库的建立、查询、更新、复制、管理和维护的软件,称为分布式数据库管理系统(Distributed DataBase Management System, DDBMS)。分布式数据库管理系统保证分布式数据库中数据的物理分布对用户的透明性。一个计算机网络组成的计算机系统,在配置了分布式数据库管理系统,并在其上建立了分布式数据库和相应的应用程序后,就称其为分布式数据库系统(Distributed  DataBase System,DDBS)。分布式数据库管理系统是分布式数据库系统的核心。

        1.分布式数据库的特点从上面的定义可以看出分布式数据库系统有以下几个特点:

        (1)数据的分布性。分布式数据库中的数据分布于网络中的各个结点,它既不同于传统的集中式数据库,也不同于通过计算机网络共享的集中式数据库系统。

        (2)统一性。主要表现在数据在逻辑上的统一性和数据在管理上的统一性两个方面。分布式数据库系统通过网络技术把局部的、分散的数据库构成一个在逻辑上单一的数据库,从而呈现在用户面前的就如同是一个统一的、集中式的数据库。这就是数据在逻辑上的统一性,因此,它不同于由网络互联的多个独立数据库。分布式数据库是由分布式数据库管理系统统一管理和维护的,这种管理上的统一性又使它不同于一般的分布式文件系统。

        (3)透明性。用户在使用分布式数据库时,与使用集中式数据库一样,无须知道其所关心的数据存放在哪里,存储了几次。用户需要关心的仅仅是整个数据库的逻辑结构。

        与集中式数据库相比,分布式数据库具有下列优点:

        (1)坚固性好。由于分布式数据库系统是由多个位置上的多台计算机构成的,在个别结点或个别通信链路发生故障的情况下,它仍然可以降低级别继续工作,如果采用冗余技术,还可以获得一定的容错能力。因此,系统的坚固性好,即系统的可靠性和可用性好。

        (2)可扩充性好。可根据发展的需要增减结点,或对系统重新配置,这比用一个更大的系统代替一个已有的集中式数据库要容易得多。

        (3)可改善性能。在分布式数据库中可按就近分布,合理地冗余的原则来分布各结点上的数据,构造分布式数据库,使大部分数据可以就近访问,避免了集中式数据库中的瓶颈问题,减少了系统的响应时间,提高了系统的效率,而且也降低了通信费用。

        (4)自治性好。数据可以分散管理,统一协调,即系统中各结点的数据操纵和相互作用是高度自治的,不存在主从控制,因此,分布式数据库较好地满足了一个单位中各部门希望拥有自己的数据,管理自己的数据,同时又想共享其他部门有关数据的要求。

       虽然分布式数据库系统与集中式数据库相比有不少优点,但同时也需要解决一些集中式数据库所没有的问题。首先,异构数据库的集成问题是一项比较复杂的技术问题,目前还很难用一个通用的分布式数据库管理系统来解决这一问题。其次,如果数据库设计得不好,数据分布不合理,以致远距离访问过多,尤其是分布连接操作过多,不但不能改善性能,反而会使性能降低。

        2.分布式数据库的分类

        分布式数据库及其分布式数据库管理系统,根据许多因素有不同的分类方法,总的原则是分布式数据库及 DDBMS 必须是其数据和软件必定分布在用计算机网络连接的多个场地上。从应用需要或本身的特征方面考虑可将它从以下几个方面来划分:

        (1)按 DDBMS 软件同构度来分。当所有服务器软件(或每个 LDBMS)和所有客户软件均用相同的软件时称为同构型分布式数据库;反之,则称为异构型分布式数据库。

        (2)按局部自治度来分。当对 DDBMS 的存取必须通过客户软件,则系统称为无局部自治;当局部事务允许对服务器软件进行直接存取,则系统称为有一定的局部自治。自治的两个分别是无局部自治和联邦型 DDBMS 或称多数据库系统。多数据库系统本质上是集中式与分布式的混合体:对一个局部用户而言,它是自治的,那么是一个集中式 DBS;对一个全局用户而言,则是一个分布式 DBS,但这个 DDBS 没有全局概念模式,只有一个由各局部数据库提供给全局允许共享的有关模式的集成。

        (3)按分布透明度来分。分布透明度的另一个概念是模式集成度。若用户可以对集成模式操作不需要涉及任何片段、重复、分布等信息时,则这类 DDBMS 称为有高度分布透明(或高度模式集成);若用户必须知道所有关于片段、分配、重复等信息时,则这类 DDBMS 没有分布透明,没有模式集成度。当系统不提供分布透明,用户查询时必须指定特定的场地、特定的片段等信息,当然 DDBMS 可以部分分布透明(介于两者之间)。

        3.分布式数据库的目标

        理想的分布式系统使用时应该精确得像一个非分布式系统。概括起来有以下 12 条具体规则和目标:

        (1)局部结点自治性。网络中的每个结点是独立的数据库系统,它有自己的数据库,运行它的局部 DBMS,执行局部应用,具有高度的自治性。

        (2)不依赖中心结点。即每个结点具有全局字典管理、查询处理、并发控制和恢复控制等功能。

        (3)能连续操作。该目标使中断分布式数据库服务情况减至最少,当一个新场地合并到现有的分布式系统或从分布式系统中撤离一个 场地不会导致任何不必要的服务中断;在分布式系统中可动态地建立和消除片段,而不中止任何组成部分的场地或数据库;应尽可能在不使整个系统停机的情况下对组成分布式系统的场地的 DBMS 进行升级。

        (4)具有位置独立性(或称位置透明性)。用户不必知道数据的物理存储地,可工作可像数据全部存储在局部场地一样。一般位置独立性需要有分布式数据命名模式和字典子系统的支持。

        (5)分片独立性(或称分片透明性)。分布式系统如果可将给定的关系分成若干块或片,可提高系统的处理性能。利用分片将数据存储在最频繁使用它的位置上,使大部分操作为局部操作,减少网络的信息流量。如果系统支持分片独立性,那么用户工作起来就像数据全然不是分片的一样。

        (6)数据复制独立性。是指将给定的关系(或片段)可在物理级用许多不同存储副本或复制品在许多不同场地上存储。支持数据复制的系统应当支持复制独立性,用户工作可像它全然没有存储副本一样地工作。

        (7)支持分布式查询处理。在分布式数据库系统中有三类查询:局部查询、远程查询和全局查询。局部查询和远程查询仅涉及单个结点的数据(本地的或远程的),查询优化采用的技术是集中式数据库的查询优化技术。全局查询涉及多个结点上的数据,其查询处理和优化要复杂得多。

        (8)支持分布事务管理。事务管理有两个主要方面:恢复控制和并发控制。在分布式系统中,单个事务会涉及多个场地上的代码执行,会涉及多个场地上的更新,可以说每个事务是由多个“代理”组成的,每个代理代表在给定场地上的给定事务上执行的过程。在分布式系统中必须保证事务的代理集或者全部一致交付,或者全部一致回滚。

        (9)具有硬件独立性。希望在不同硬件系统上运行同样的 DBMS。

        (10)具有操作系统独立性。希望在不同的操作系统上运行 DBMS。

        (11)具有网络独立性。如果系统能够支持多个不同的场地,每个场地有不同的硬件和不同的操作系统,则要求该系统能支持各种不同的通信网络。

        (12)具有 DBMS 独立性。实现对异构型分布式系统的支持。理想的分布式系统应该提供DBMS 独立性。

        上述的全功能分布式数据库系统的准则和目标起源于:一个分布式数据库系统,对用户来说,应当看上去完全像一个非分布式系统。值得指出的是,现实系统出于对某些方面的特别考虑,对上述各方面做出了种种权衡和选择。

    2 分布式数据库的架构

        分布式数据库系统的模式结构有六个层次,如图 3-8 所示,实际的系统并非都具有这种结构。在这种结构中各级模式的层次清晰,可以概括和说明任何分布式数据库系统的概念和结构。

        图 3-8 的模式结构从整体上可以分为两大部分:下半部分是集中式数据库的模式结构,代表了各局部场地上局部数据库系统的基本结构;上半部分是分布式数据库系统增加的模式级别。

        (1)全局外模式。它们是全局应用的用户视图,是全局概念模式的子集。

        (2)全局概念模式。它定义分布式数据库中数据的整体逻辑结构,数据就如同根本没有分布一样,可用传统的集中式数据库中所采用的方法定义。全局概念模式中所用的数据模型应该易于向其他层次的模式映像,通常采用关系模型。这样,全局概念模式包括一组全局关系的定义。

        (3)分片模式。每一个全局关系可以划分为若干不相交的部分,每一部分称为一个片段,即“数据分片”。分片模式就是定义片段及全局关系到片段的映像。这种映像是一对多的,即每个片段来自一个全局关系,而一个全局关系可对应多个片段。

        (4)分布模式。由数据分片得到的片断仍然是 DDB 的全局数据,是全局关系的逻辑部分,每一个片段在物理上可以分配到网络的一个或多个不同结点上。分布模式定义片段的存放结点。分布模式的映像类型确定了分布式数据库是冗余的还是非冗余的。若映像是一对多的,即一个片段分配到多个结点上存放,则是冗余的分布数据库,否则是不冗余的分布数据库。

        根据分布模式提供的信息,一个全局查询可分解为若干子查询,每一子查询要访问的数据属于同一场地的局部数据库。由分布模式到各局部数据库的映像(映像 4)把存储在局部场地的全局关系或全局关系的片段映像为各局部概念模式采用局部场地的 DBMS 所支持的数据模型。

        分片模式和分布模式均是全局的,分布式数据库系统中增加的这些模式和相应的映像使分布式数据库系统具有了分布透明性。

        (5)局部概念模式。一个全局关系经逻辑划分成一个或多个逻辑片断,每个逻辑片断被分配在一个或多个场地上,称为该逻辑片断在某场地上的物理映像或物理片断。分配在同一场地上的同一个全局概念模式的若干片断(物理片断)构成了该全局概念在该场地上的一个物理映像。

        一个场地上的局部概念模式是该场地上所有全局概念模式在该场地上物理映像的集合。由此可见,全局概念模式与场地独立,而局部概念模式与场地相关。

        (6)局部内模式。局部内模式是 DDB 中关于物理数据库的描述,类似于集中式 DB 中的内模式,但其描述的内容不仅包含局部本场地的数据的存储描述,还包括全局数据在本场地的存储描述。

        在图 3-8 的六层模式结构中,全局概念模式、分片模式和分布模式是与场地特征无关的,是全局的,因此它们不依赖于局部 DBMS 的数据模型。在低层次上,需要把物理映像映射成由局部DBMS 支持的数据模型。这种映像由局部映射模式完成。具体的映射关系,由局部 DBMS 的类型决定。在异构型系统中,可在不同场地上拥有类型的局部映射模式。

        这种分层的模式结构为理解 DDB 提供了一种通用的概念结构。它有三个显著的特征:

        (1)数据分片和数据分配概念的分离,形成了“数据分布独立型”概念。

     

        (2)数据冗余的显示控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理。

        (3)局部 DBMS 的独立性。这个特征也称为“局部映射透明性”。此特征允许在不考虑局部 DBMS 专用数据模型的情况下研究 DDB 管理的有关问题。

        1.分布式数据库系统与并行数据库系统的区别

        分布式数据库系统与并行数据库系统具有很多相似点:它们都是通过网络连接各个数据处理结点的,整个网络中的所有结点构成一个逻辑上统一的整体,用户可以对各个结点上的数据进行透明存取等。但分布式数据库系统与并行数据库系统之间还是存在着显著的区别的,主要表现在以下几个方面:

        (1)应用目标不同。并行数据库系统的目标是充分发挥并行计算机的优势,利用系统中的各个处理机结点并行地完成数据库任务,提高数据库的整体性能。分布式数据库系统主要目的在于实现各个场地自治和数据的全局透明共享,而不要求利用网络中的各个结点来提高系统的整体性能。

        (2)实现方式不同。由于应用目标各不相同,在具体实现方法上,并行数据库与分布式数据库之间也有着较大的区别。在并行数据库中,为了充分发挥各个结点的处理能力,各结点间采用高速通信网络互联,结点间数据传输代价相对较低。当负载不均衡时,可以将工作负载过大的结点上的任务通过高速通信网络送给空闲结点处理,从而实现负载平衡。在分布式数据库系统中,各结点(场地)间一般通过局域网或广域网互联,网络带宽比较低,各场地之间的通信开销较大,因此在查询处理时一般应尽量减少结点间的数据传输量。

        (3)各结点的地位不同。在并行数据库中,各结点之间不存在全局应用和局部应用的概念。各个结点协同作用,共同处理,而不可能有局部应用。

        在分布式数据库系统中,各结点除了能通过网络协同完成全局事务外,还有自己结点场地的自治性。也就是说,分布式数据库系统的每个场地又是一个独立的数据库系统,除了拥有自己的硬件系统(CPU、内存和磁盘等)外,还拥有自己的数据库和自己的客户,可运行自己的 DBMS,执行局部应用,具有高度的自治性。这是并行数据库与分布式数据库之间最主要的区别。

        2.数据分片和透明性

        将数据分片,使数据存放的单位不是关系而是片段,这既有利于按照用户的需求较好地组织数据的分布,也有利于控制数据的冗余度。分片的方式有多种,水平分片和垂直分片是两种基本的分片方式,混合分片和导出分片是较复杂的分片方式。

        分布透明性指用户不必关心数据的逻辑分片,不必关心数据存储的物理位置分配细节,也不必关心局部场地上数据库的数据模型。从图 3-8 的模式结构可以看到分布透明性包括:分片透明性、位置透明性和局部数据模型透明性。

        (1)分片透明性是分布透明性的最高层次。所谓分片透明性是指用户或应用程序只对全局关系进行操作而不必考虑数据的分片。当分片模式改变时,只要改变全局模式到分片模式的映像(映像 2),而不影响全局模式和应用程序。全局模式不变,应用程序不必改写,这就是分片透明性。

        (2)位置透明性是分布透明性的下一层次。所谓位置透明性是指,用户或应用程序应当了解分片情况,但不必了解片段的存储场地。当存储场地改变时,只要改变分片模式到分配模式的映像(映像 3),而不影响应用程序。同时,若片段的重复副本数目改变了,那么数据的冗余也会改变,但用户不必关心如何保持各副本的一致性,这也提供了重复副本的透明性。

        (3)局部数据模型透明性是指用户或应用程序应当了解分片及各片断存储的场地,但不必了解局部场地上使用的是何种数据模型。模型的转换及语言等的转换均由映像 4 来完成。

        3.分布式数据库管理系统分布式数据库管理系统的任务,首先就是把用户与分布式数据库隔离开来,使其对用户而言,整个分布式数据库就好像是一个传统的集中式数据库。换句话说,一个分布式数据库管理系统与用户之间的接口,在逻辑上与集中式数据库管理系统是一致的。但是考虑到分布式数据库的特点,其物理实现上又与集中式数据库不同。下面以一种分布式数据库管理。

        以系统 DDBMS 的结构为例来分析它的主要成分和功能,如图 3-9 所示。

     

        由图 3-9 可以看出,DDBMS 由 4 部分组成:

        (1)LDBMS(局部 DBMS)。局部场地上的数据库管理系统的功能是建立和管理局部数据库,提供场地自治能力、执行局部应用及全局查询的子查询。

        (2)GDBMS(全局 DBMS)。全局数据库管理系统的主要功能是提供分布透明性,协调全局事务的执行,协调各局部 DBMS 以完成全局应用,保证数据库的全局一致性,执行并发控制,实现更新同步,提供全局恢复功能。

        (3)全局数据字典。存放全局概念模式、分片模式、分布模式的定义及各模式之间映像的定义;存放有关用户存取权限的定义,以保证全局用户的合法权限和数据库的安全性;存放数据完整性约束条件的定义,其功能与集中式数据库的数据字典类似。

        (4)CM(Communication Management,通信管理)。在分布数据库各场地之间传送消息和数据,完成通信功能。

       DDBMS 功能的分割和重复及不同的配置策略就导致了各种架构。

        (1)全局控制集中的 DDBMS。这种结构的特点是全局控制成分 GDBMS 集中在某一结点上,由该结点完成全局事务的协调和局部数据库转换等一切控制功能,全局数据字典只有一个,也存放在该结点上,它是 GDBMS 执行控制的依据。它的优点是控制简单,易实现更新一致性。但由于控制集中在某一特定的结点上,不仅容易形成瓶颈而且系统较脆弱,一旦该结点出故障,整个系统就会瘫痪。

        (2)全局控制分散的 DDBMS。这种结构的特点是全局控制成分 GDBMS 分散在网络的每一个结点上,全局数据字典也在每个结点上有一份,每个结点都能完成全局事务的协调和局部数据库转换,每个结点既是全局事务的参与者又是协调者,一般称这类结构为完全分布的 DDBMS。它的优点是结点独立,自治性强,单个结点退出或进入系统均不会影响整个系统的运行,但是全局控制的协调机制和一致性的维护都比较复杂。

        (3)全局控制部分分散的 DDBMS。这种结构是根据应用的需要将 GDBMS 和全局数据字典分散在某些结点上,是介于前两种情况之间的架构。

        局部 DBMS 的一个重要性质是:局部 DBMS 是同构的还是异构的。同构和异构的级别可以有三级:硬件、操作系统和局部 DBMS。其中最主要的是局部 DBMS 这一级,因为硬件和操作系统的不同将由通信软件处理和管理。

        异构型 DDBMS 的设计和实现比同构型 DDBMS 更加复杂,它要解决不同的 DBMS 之间及不同的数据模型之间的转换。因此在设计和实现 DDBMS 时,若是用自顶向下的方法进行,即并不存在已运行的局部数据库,则采用同构型的结构比较方便。若是采用自底向上设计 DDBMS 的方法,即现已存在的局部数据库,而这些数据库可能采用不同的数据模型(层次、网状或关系),或者虽然模型相同但它们是不同厂商的 DBMS(如 Informix、 Sybase、Db2、Oracle),这就必须开发异构型的 DDBMS。要解决异构数据库模型的同种化问题,是研制异构型 DDBMS 的关键所在,所谓同种化就是寻找合适的公共数据模型,采用公共数据模型与异构数据模型(局部)之间的转换,不采用各结点之间的一对一转换。这样可以减少转移次数。设有 N 个结点,用公共数据模型时转换次数为 2N,而各结点之间一对一转换则需 N(N1)次。

    展开全文
  • SQL Server 2012数据库 系统数据库介绍

    千次阅读 2019-03-31 19:37:07
    系统数据库是在安装SQL Server时自动创建的,主要用来完成特定的数据库管理工作的数据库。     SQL Server 2012的系统数据库主要有master、model、msdb、tempdb和resource这五个。 各系统数据库介绍 ...
    前言

        在SQL Server中,数据库可分为用户数据库和系统数据库。用户数据库是用户为实现特定用户需求而创建的数据库,主要用来存储用户的应用数据。系统数据库是在安装SQL Server时自动创建的,主要用来完成特定的数据库管理工作的数据库。
        SQL Server 2012的系统数据库主要有master、model、msdb、tempdb和resource这五个。

    各系统数据库介绍
    1. master数据库
      master数据库是SQL Server中最重要的数据库,它记录了SQL Server系统中所有的系统信息,包括登录账户、系统配置和设置、服务器中数据库的名称、相关信息和这些数据库文件的位置,以及SQL Server初始化信息等。由于master数据库记录了如此多且重要的信息,一旦数据库文件损失或损毁,将对整个SQL Server系统的运行造成重大的影响,甚至是得整个系统瘫痪,因此,要经常对master数据库进行备份,以便在发生问题时,对数据库进行恢复。
      如果我们需要使用master数据库,则需要考虑以下措施
      (1)有一个当前数据库备份
      (2)创建、修改和和删除数据库;更改服务器或数据库配置信息;增添或修改登录账户后,尽快备份master数据库
      (3)尽量不在master中创建用户对象
      (4)不要将master数据库的TRUSTWORTHY设置为ON
      TRUSTWORTHY属性可用于减少附加数据库所带来的某些隐患,该数据库包含下列对象之一:
      带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的有害程序集。 有关详细信息,请参阅 CLR Integration Security。
      所定义的、作为高特权用户执行的有害模块。 有关详细信息,请参阅 EXECUTE AS 子句 (Transact-SQL)。

    2. model数据库
      model系统数据库是一个模板数据库,可以用作建立数据库的摸板。它包含了建立新数据库时所需的基本对象,如系统表、查看表、登录信息等。在系统执行建立新数据库操作时,它会复制这个模板数据库的内容到新的数据库上。由于所有新建立的数据库都是继承这个model数据库而来的,因此,如果更改model数据库中得内容,如增加对象,则稍后建立的数据库也都会包含该变动。
      model系统数据库是tempdb数据库的基础。由于每次启动提供SQL Server时,系统都会创建tempdb数据库,所以model数据库必须始终存在于SQL Server系统中。

    3. msdb数据库
      msdb系统数据库是提供提“SQL Server代理服务”调度警报、作业以及记录操作员时使用。如果不使用这些SQL Server代理服务,就不会使用到该系统数据库。
      SQL Server代理服务是SQL Server中的一个Windows服务,用于运行任何已创建的计划作业。作业是指SQL Server中定义的能自动运行的一系列操作。例如,如果希望在每个工作日下班后备份公司所有服务器,就可以通过配置SQL Server代理服务使数据库备份任务在周一到周五的22:00之后自动运行。

    4. tempdb数据库
      tempdb数据库是存在于SQL Server会话期间的一个临时性的数据库。tempdb系统数据库是一个全局资源,可供连接到SQL Server的所有用户使用。tempdb中的操作是最小日志记录操作,可以使事务产生回滚。一旦关闭SQL Server,tempdb数据库保存的内容将自动消失。重启动SQL Server时,系统将重新创建新的、空的tempdb数据库。因此,tempdb中的内容仅存于本次会话中。
      tempdb保存的内容主要包括:
      (1)显示创建的临时用户对象,如临时表,临时存储过程、表变量或游标。
      (2)所有版本的更新记录,如修改事务生成的行版本
      (3)SQL Server创建的内部工作表,如存储假脱机数据的工作表
      (4)创建或重新生成索引时,临时排序的结果。
      不允许对tempdb进行备份或还原。

    5. resource数据库
      resource数据库是只读数据库,包含了SQL Server中所有系统对象。SQL Server系统对象(如sys.object对象)在物理上持续存在于resource数据库中。resource数据库不包含用户数据或用户元数据。
      在这里插入图片描述

    展开全文
  • 数据库原理》— 数据库系统概论第五版习题解析

    万次阅读 多人点赞 2017-05-29 14:57:48
    数据库系统概论前七章习题解析 第1章绪论 1.试述数据、数据库数据库系统数据库管理系统的概念。答: (l)数据(Data):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。...

    数据库系统概论前七章习题解析

    第1章 绪论

    1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答:  

    ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。  ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 

    ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。  

    ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。   

    2 .使用数据库系统有什么好处? 答: 

    使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。  

     3 .试述文件系统与数据库系统的区别和联系。 答: 

    文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。 

    文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件。解析文件系统是操作系统的重要组成部分;而 DBMS 是独立于操作系统的软件。但是 DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。  

    4 .举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。答 : ( l )适用于文件系统而不是数据库系统的应用例子数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适。早期功能比较简单、比较固定的应用系统也适合用文件系统。 

     ( 2 )适用于数据库系统而非文件系统的应用例子目前,几乎所有企业或部门的信息系统都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统(其中会包括许多子系统,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系统等),学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等,都适合用数据库系统。希望读者能举出自己了解的应用例子。  

    5 .试述数据库系统的特点。 答: 

    数据库系统的主要特点有: 

     ( l )数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。解析注意这里的“整体’夕两个字。在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一个:记录,如一个学生的完整记录。 

     ( 2 )数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。解析数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用”是指数据结构是针对某个应用设计的,只被这个应用程序或应用系统使用,可以说数据是某个应用的“私有资源”。所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整个数据库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的需求。 

     ( 3 )数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。 

    ( 4 )数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此, DBMS 必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。解析 DBMS 数据控制功能包括四个方面:数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性;数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)。下面可以得到“什么是数据库”的一个定义:数据库是长期存储在计算机内有组织的大量的共享的数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。 DBMS 在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

    6 .数据库管理系统的主要功能有哪些? 答: 

    ( l )数据库定义功能;  ( 2 )数据存取功能;  ( 3 )数据库运行管理;  ( 4 )数据库的建立和维护功能。 

    7 .什么是概念模型?试述概念模型的作用。 

    答:概念模型,也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。 

    概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。 

    8.定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。 答: 

    实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同型实体的集合称为实体集;实体之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一,一对多和多对多等多种类型。   

    9 .试述数据模型的概念、数据模型的作用和数据模型的三个要素。 答: 

    数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。  ( l )数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。 

     ( 2 )数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。 

     ( 3 )数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。解析数据模型是数据库系统中最重要的概念之一。必须通过 《 概论 》 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。任何一个 DBMS 都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中,模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据,一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。 

    12 .试述网状、层次数据库的优缺点。 答: 

    层次模型的优点主要有: ( l )模型简单,对具有一对多层次关系的部门描述非常自然、直观,容易理解,这是层次数据库的突出优点; ( 2 )用层次模型的应用系统性能好,特别是对于那些实体间联系是固定的且预先定义好的应用,采用层次模型来实现,其性能优于关系模型; ( 3 )层次数据模型提供了良好的完整性支持。 

    层次模型的缺点主要有: ( l )现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型不能自然地表示这类联系,只能通过引入冗余数据或引入虚拟结点来解决; ( 2 )对插入和删除操作的限制比较多; ( 3 )查询子女结点必须通过双亲结点。 

    网状数据模型的优点主要有: ( l )能够更为直接地描述现实世界,如一个结点可以有多个双亲; ( 2 )具有良好的性能,存取效率较高。 

    网状数据模型的缺点主要有: ( l )结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握; ( 2 )其 DDL 、 DML 语言复杂,用户不容易使用。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径。因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。 

    13.试述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 )元组 ( 5 )主码( 6 )分量( 7 )关系模式 答: 

    关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 ( l )关系:一个关系对应通常说的一张表; ( 2 )属性:表中的一列即为一个属性; ( 3 )域:属性的取值范围; ( 4 )元组:表中的一行即为一个元组; ( 5 )主码:表中的某个属性组,它可以惟一确定一个元组; ( 6 )分量:元组中的一个属性值; ( 7 )关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性 2 , „ ,属性 n )  14 .试述关系数据库的特点。 答: 

    关系数据模型具有下列优点: ( l )关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 ( 2 )关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。 ( 3 )关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

    15.试述数据库系统三级模式结构,这种结构的优点是什么? 答: 

    数据库系统的三级模式结构由外模式、模式和内模式组成。(参见书上图 1 . 29 ) 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMs 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 

    16 .定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML 。 

    模式、外模式、内模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 DDL :数据定义语言,用来定义数据库模式、外模式、内模式的语言。 DML :数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。  

    17.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性? 答: 

    数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。  

    18 .试述数据库系统的组成。 答: 

    数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 19 .数据库管理员、系统分析员、数据库设计人员、应用程序员的职责是什么? 答: 

    数据库管理员的职责:(1)决定数据库中的信息内容和结构; (2)决定数据库的存储结构和存取策略; (3)定义数据的安全性要求和完整性约束条件; (4)监控数据库的使用和运行; (5)数据库的改进和重组、重构。 

    系统分析员负责应用系统的需求分析和规范说明,系统分析员要和用户及 DBA 相结合,确定系统的硬件、软件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

     

    第二章 关系数据库

    1、试述关系模型的三个组成部分。
    答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

    2、试述关系数据语言的特点和分类。

    答:关系数据语言可以分为三类:

    关系代数语言。

    关系演算语言:元组关系演算语言和域关系演算语言。

    SQL:具有关系代数和关系演算双重特点的语言。

    这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

    5 . 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

    答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。

    若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。

    6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

    1)求供应工程J1零件的供应商号码SNO:

    πSno(σJno=‘J1’(SPJ))

    2)求供应工程J1零件P1的供应商号码SNO:

    πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))

    3)求供应工程J1零件为红色的供应商号码SNO:

    πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘ (P)))

    4)求没有使用天津供应商生产的红色零件的工程号JNO:

    πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)

    5)求至少用了供应商S1所供应的全部零件的工程号JNO:

    πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

    7. 试述等值连接与自然连接的区别和联系。

    答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组

    自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

    8.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算? 

    答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。

    第三章 关系数据库语言SQL

    1 .试述 sQL 语言的特点。

    答:(l)综合统一。 sQL 语言集数据定义语言 DDL 、数据操纵语言 DML 、数据控制语言 DCL 的功能于一体。

    (2)高度非过程化。用 sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及 sQL 语句的操作过程由系统自动完成。

    (3)面向集合的操作方式。 sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

    (4)以同一种语法结构提供两种使用方式。 sQL 语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。

    (5)语言简捷,易学易用。

    3 (1) select * from S where A='10';

     (2) select  A,B  from S;

     (3) select A,B,S.C,S.D,E,F from S ,T  where S.C=T.C and S.D=T.D;

     (4) select * from S ,T  where S.C=T.C;

     (5) select * from S ,T  where S.A<T.E;

     (6) select S.C,S.D,T.* from S ,T ;

    4.用 sQL 语句建立第二章习题 6中的 4 个表。

    答:

    对于 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))

    针对建立的 4 个表用 sQL 语言完成第二章习题6中的查询。

     ( 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')

    5.针对上题中的四个表试用SQL语言完成以下各项操作:

    (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)

    6 .什么是基本表?什么是视图?两者的区别和联系是什么?

    答:基本表是本身独立存在的表,在 sQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

    7 .试述视图的优点。

    ( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。

    8 .哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。

    答:基本表的行列子集视图一般是可更新的。若视图的属性来自集合函数、表达式,则该视图肯定是不可以更新的。

    所有的视图是否都可以更新?为什么?

    答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的.

    9 .请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

    CREATE VIEW VSP AS SELECT SNO,SPJ.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'

    第四章 数据库安全性

    1 .什么是数据库的安全性?

    答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

    2 .数据库安全性和计算机系统的安全性有什么关系?
    答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
    系统安全保护措施是否有效是数据库系统的主要指标之一。
    数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的,

    4 .试述实现数据库安全性控制的常用方法和技术。

    答:实现数据库安全性控制的常用方法和技术有:
    ( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
    ( 2 )存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。
    ( 3 )视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

    ( 4 )审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
    ( 5 )数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

    5.什么是数据库中的自主存取控制方法和强制存取控制方法? 

    答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。

    强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

    6. (1) GRANT ALL PRIVILEGES ON Student,Class  

    TO U1
    WITH GRANT OPTION ;

      (2)GRANT SELECT,UPDATE(家庭住址),DELETE ON Student TO U2;

      (3)GRANT SELECT ON Class TO PUBLIC;

      (4)GRANT SELECT,UPDATE ON Student TO R1;

      (5)GRANT R1 TO U1 WITH ADMIN OPTION ;

     7 .SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。

    答:SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。如:

    GRANT SELECT , INSERT ON Student  

    TO 王平
    WITH GRANT  OPTION ;

    就将Student 表的SELECT 和INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。
    REVOKE INSERT ON Student FROM 王平CASCADE ;
    就将Student 表的INSERT 权限从用户王平处收回,选项CASCADE 表示,如果用户王平将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。

    7.请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:

    ( a )用户王明对两个表有SELECT 权力。

    GRANT SELECT ON 职工,部门

    TO 王明

    ( b )用户李勇对两个表有INSERT 和DELETE 权力。

    GRANT INSERT,DELETE ON 职工,部门

    TO 李勇

    ( c ) 每个职工只对自己的记录有SELECT 权力。

    GRANT SELECT ON 职工

    WHEN USER()=NAME

    TO ALL;

    ( d )用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。

    GRANT SELECT,UPDATE(工资) ON 职工

    TO 刘星

     ( e )用户张新具有修改这两个表的结构的权力。

    GRANT ALTER TABLE ON 职工,部门

    TO 张新;

     ( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。

    GRANT ALL PRIVILIGES ON 职工,部门

    TO 周平

    WITH GRANT OPTION;

    ( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。

    CREATE VIEW 部门工资 AS

    SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)

    FROM 职工,部门

    WHERE 职工.部门号=部门.部门号

    GROUP BY 职工.部门号

    GRANT SELECT ON 部门工资

    TO 杨兰;

    8 .把习题8 中(1)---(7)的每一种情况,撤销各用户所授予的权力

    (1) REVOKE SELECT ON 职工,部门 FROM 王明;

    (2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇;

    (3) REOVKE SELECT ON 职工
    WHEN USER ( ) =NAME
    FROM ALI ;

    (4) REVOKE SELECT , UPDATE ON 职工
    FROM 刘星;

    (5) REVOKE ALTER TABLE ON 职工,部门
    FROM 张新;

    (6) REVOKE ALL PRIVILIGES ON 职工,部门
    FROM 周平;

    (7) REVOKE SELECT ON 部门工资
    FROM 杨兰;
    DROP VIEW 部门工资;

    9.理解并解释MAC 机制中主体、客体、敏感度标记的含义。

    答:主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。
    客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。

    敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret )· 可信( Confidential )、公开(PubliC )等。主体的敏感度标记称为许可证级别(ClearanCe 玫vel ) ,客体的敏感度标记称为密级(Classification Level )。

    11 .什么是数据库的审计功能,为什么要提供审计功能?

    答:审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
    因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

    第5章 数据库完整性

    1什么是数据库的完整性?

    答:数据库的完整性是指数据的正确性和相容性。

    2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系?

    答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

    3 .什么是数据库的完整性约束条件?可分为哪几类?

    答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束是对一个列的取值域的说明,包括以下几个方面: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。

    常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。

    动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面: ( l )修改列定义时的约束; ( 2 )修改列值时的约束。动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。

    4 . DBMS 的完整性控制机制应具有哪些功能?

    答:DBMS 的完整性控制机制应具有三个方面的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

    5 . RDBMS 在实现参照完整性时需要考虑哪些方面?

    答 :RDBMs 在实现参照完整性时需要考虑以下几个方面:

    ( l )外码是否可以接受空值。

    ( 2 )册 l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种: l )级联删除( CASCADES ) ; 2 )受限删除( RESTRICTED ) ; 3 )置空值删除( NULLIFIES )。 ( 3 )在参照关系中插入元组时的问题,这时系统可能采取的作法有: l )受限插入; 2 )递归插入。

    ( 4 )修改关系中主码的问题。一般是不能用 UPDATE 语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。

    6 .假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用 sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过 60 岁。

    CREATE TABLE DEPT

        (Deptno NUMBER(2),

         Deptname VARCHAR(10),

         Manager VARCHAR(10),

         PhoneNumber Char(12)

         CONSTRAINT PK_SC RIMARY KEY(Deptno));

    CREATE TABLE EMP

        (Empno NUMBER(4),

         Ename VARCHAR(10),

         Age NUMBER(2),

         CONSTRAINT C1 CHECK ( Aage<=60),

          Job VARCHAR(9),

          Sal NUMBER(7,2),

          Deptno NUMBER(2),

          CONSTRAINT FK_DEPTNO

             FOREIGN KEY(Deptno)

             REFFERENCES DEPT(Deptno));

    7 .关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?

    答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。

    第6章 关系数据库理论

    1 .理解并给出下列术语的定义:
    函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依赖、4NF 。

    定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XàY。(即只要X上的属性值相等,Y上的值一定相等。)

    术语和记号:

    XàY,但Y不是X的子集,则称XàY是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。

    XàY,但Y是X的子集,则称XàY是平凡的函数依赖。

    若XàY,则X叫做决定因素(Determinant)。

    若XàY,YàX,则记作XßàY。

    若Y不函数依赖于X,则记作X à Y。

    定义2:在R(U)中,如果 XàY,并且对于X的任何一个真子集X’,都有X’ à Y,则称Y对X完全函数依赖

           若XàY,但Y不完全函数依赖于X,则称Y对X部分函数依赖

    定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。

    定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。

    定义5:关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XàY,Y à X,Y à Z成立,则称R<U,F>∈3NF。

    定义6:关系模式R<U,F>∈1NF 。若XàY且Y不是X的子集时,X必含有码,则R<U,F>∈BCNF。

    定义7:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖XààY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R<U,F>∈4NF。

    2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

    学生:学号、姓名、出生年月、系名、班号、宿舍区。

    班级:班号、专业名、系名、人数、入校年份。

    系:系名、系号、系办公地点、人数。

    学会:学会名、成立年份、办公地点、人数。

        语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。

    请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?

     

     

    解:(1)关系模式如下:

      学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)

      班级:C(Class,Pname,Dept,Cnum,Cyear)

      系:D(Dept,Dno,Office,Dnum)

      学会:M(Mname,Myear,Maddr,Mnum)

      (2)每个关系模式的最小函数依赖集如下:

      A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoàSname,SnoàSbirth,SnoàClass,ClassàDept,DEPTàRno

        传递依赖如下:

    由于SnoàDept,而DeptàSno ,DeptàRno(宿舍区)

     

    所以Sno与Rno之间存在着传递函数依赖。

        由于ClassàDept,Dept à Class,DeptàRno

             所以Class与Rno之间存在着传递函数依赖。

        由于SnoàClass,ClassàSno,ClassàDept

             所以Sno与Dept之间存在着传递函数依赖。

      B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:

        ClassàPname,ClassàCnum,ClassàCyear,PnameàDept.

        由于ClassàPname,PnameàClass,PnameàDept

            所以C1ass与Dept之间存在着传递函数依赖。

     C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:

        DeptàDno,DnoàDept,DnoàOffice,DnoàDnum

        根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。

     D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:

        MnameàMyear,MnameàMaddr,MnameàMnum

         该模式不存在传递依赖。

      (3)各关系模式的候选码、外部码,全码如下:

      A、学生S候选码:Sno;外部码:Dept、Class;无全码

      B、班级C候选码:Class;外部码:Dept;无全码

      C、系D候选码:Dept或Dno;无外部码;无全码

      D、学会M候选码:Mname;无外部码;无全码

    7.下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。

    (1)任何一个二目关系是属于3NF。

    答:正确。因为关系模式中只有两个属性,所以无传递。

    (2)任何一个二目关系是属于BCNF.

    答:正确。按BCNF的定义,若XàY,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定是BCNF)。

    证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:

    A、A1àA2,但A2àA1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。

    B、A1àA2,A2àA1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。

    包含码。R是BCNF。C、R的码为(A1,A2)(即A1 àA2,A2 àA1),决定因素都

    第七章 数据库设计

    1.试述数据库设计过程。

    答:这里只概要列出数据库设计过程的六个阶段: ( l )需求分析; ( 2 )概念结构设计; ( 3 )逻辑结构设计; ( 4 )数据库物理设计; ( 5 )数据库实施; ( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

    2 .试述数据库设计过程各个阶段上的设计描述。

    答:各阶段的设计要点如下: ( l )需求分析:准确了解与分析用户需求(包括数据与处理)。 ( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。 ( 3 )逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。 ( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 ( 5 )数据库实施:设计人员运用 DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 ( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。

    3 .试述数据库设计过程中结构设计部分形成的数据库模式。

    答:数据库结构设计的不同阶段形成数据库的各级模式,即: ( l )在概念设计阶段形成独立于机器特点,独立于各个 DBMS 产品的概念模式,在本篇中就是 E 一 R 图; ( 2 )在逻辑设计阶段将 E 一 R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图 ( Vi 娜),形成数据的外模式; ( 3 )在物理设计阶段,根据 DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

    5 .什么是数据库的概念结构?试述其特点和设计策略。

    答:概念结构是信息世界的结构,即概念模型,其主要特点是: ( l )能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型; ( 2 )易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键; ( 3 )易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充; ( 4 )易于向关系、网状、层次等各种数据模型转换。概念结构的设计策略通常有四种: l )自顶向下,即首先定义全局概念结构的框架,然后逐步细化; 2 )自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构; 3 )逐步扩张,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构; 4 )混合策略,即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

    7.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用 E 一 R 图画出此学校的概念模型。

    答:

     

    各实体属性为:

    系:系编号,系名

    班级:班级号,班级名

    教研室:教研室号,教研室

    学生:学号,姓名,学历

    课程:课程号,课程名

    教员:职工号,姓名,职称

    联系的属性:“选修”的属性为“成绩”

    转换为关系模型如下:

    系(系编号,系名,学校名)

    班级(班级号,班级名,系编号)

    教研室(教研室号,教研室,系编号)

    学生(学号,姓名,学历,班级号,导师职工号)

    课程( 课程号,课程名)

    教员(职工号,姓名,职称,教研室号)

    选修(学号,课程号,成绩)

    8 .某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用 E 一 R 图画出此工厂产品、零件、材料、仓库的概念模型。

    答:

     

    各实体属性为:

    产品:产品号,产品名

    零件:零件号,零件名

    原材料:原材料号,原材料名,类别

    仓库:仓库号,仓库名

    各联系的属性为:

    产品组成:使用零件量

    零件制造:使用原材料量

    零件存储:存储量

    材料存放:存储量

    转换为关系模型如下:

    产品(产品号,产品名,仓库号)

    零件:零件号,零件名

    原材料:原材料号,原材料名,类别,仓库号,存放量)

    仓库(仓库号,仓库名)

    产品组成(产品号,零件号,使用零件量)

    零件组成(零件号,原材料号,使用原材料量)

    零件储存(零件号,仓库号,存储量)

    9 .什么是数据库的逻辑结构设计?试述其设计步骤。

    答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计步骤为 : ( l )将概念结构转换为一般的关系、网状、层次模型; ( 2 )将转换来的关系、网状、层次模型向特定 DBMS 支持下的数据模型转换; ( 3 )对数据模型进行优化。

    11、第七题中设计的关系模型中的各个关系模式都只有一个码,且都是唯一的决定因素,所以属于BCNF,不会发生更新异常。

     

    展开全文
  • 分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯...它们在逻辑上属于同一系统,但在物理结构上是分布式的。 分布式数据库系统已经成为信息处理学科的重要领域,正在迅速发展之中,原因基于以下几
  • 单选填空 第 1 章 绪论 一单项选择题 1.数据库系统是采用了数据库技术的计算机系统数据库系统由数据库数据库管理 系统应用系统和 C 系统分析员 程序员 数据库管理员 操作员 2....下列四项中不属于数据库系统
  • ?考试时题型包括选择填空判断简单和设计题90%以上来自于这10套题部分...下列四项中不属于数据库特点的是 A.数据共享 B.数据完整性C.数据冗余很高 D.数据独立性高 2.下列四项中不属于SQL2000实用程序的是 A.企业管理器 B
  • 数据库系统概论》期末挂科

    千次阅读 多人点赞 2021-05-29 11:55:13
    数据库系统的核心是 数据库管理系统 DBMS 数据库系统的特点的是 数据结构化、数据由DBMS统一管理和控制、数据独立性高 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是 实体-联系模型(E-R模型) ...
  • 数据库系统概论习题 数据库设计

    千次阅读 2020-06-21 16:46:56
    数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是( ) 建立库结构 扩充功能 加载数据 系统调试 [参考答案] 扩充功能 试题3 在数据库的概念设计中,最常用的数据模型是( ) 形象...
  • 数据库系统期中考试

    千次阅读 2020-05-11 12:14:04
    数据库管理系统 B、 数据库系统 C、 数据库 D、 文件系统 我的答案:C 2在数据库中存储的是( )。 A、 数据 B、 数据模型 C、 数据以及数据之间的联系 D、 信息 我的答案:C 3 数据库系统阶段,数据( )。 (2.0分...
  • 分布式数据库系统:一个粗略的定义是“分布式数据库由一组数据组成,这些数据物理上分布在计算机网络的不同节点上(亦称场地)上,逻辑上是属于同一个系统。” 这里强调两点: (1)分布性:数据库中的数据不是存储...
  • 数据库系统概念

    万次阅读 多人点赞 2019-03-12 16:50:55
    1.1 文件管理系统坏处 1.2 数据视图 1.3 数据模型 1.4 数据库语言 第二章、关系模型介绍 2.1 关系数据库的结构 2.2 数据库模式 2.3 码 第三章、SQL 3.1 SQL 查询语言概览 3.2 SQL数据定义 3.2.1基本类型 ...
  • 数据库系统期末复习

    万次阅读 多人点赞 2019-01-05 16:04:03
    数据库期末复习 文章目录数据库期末复习2. 关系模式介绍2.1 关系数据库的结构2.2 数据库模式2.3 码(key)2.4 模式图2.6 关系运算3.SQL1. 数据类型:2. 建表结构:3. 指定主键4. 指定外码5. 删除表6. 删除表中内容7....
  • 以下不同的数据库类型中,哪些不属于关系数据库范畴 正确答案: A C D 你的答案: A C (错误) MongoDB PostgreSQL Redis HBase 添加笔记 求解答(0) 收藏 纠错 ...
  • 数据库系统概论第五版 答案

    万次阅读 多人点赞 2018-11-07 23:38:38
    图缺失部分:https://wenku.baidu.com/view/37304042ff4733687e21af45b307e87101f6f86c.html ... 第1章 绪论 ...1 .试述数据、数据库数据库系统数据库管理系统的概念。 答: ( l )数据( Data ...
  • 第五版)★第一章 绪论v 本章内容:数据库系统概述、数据模型、数据库系统结构v 本章主要考点: 数据、数据库、★数据库管理系统的概念、概念模型、★ER图、三种数据模型、数据库的三级模式结构1、试述数据、...
  • 数据库系统原理选择题

    千次阅读 2020-04-11 22:00:40
    数据库系统原理选择题 1、要保证数据库的逻辑数据独立性,需要修改的是||A||。 A: 模式与外模式之间的映射 B: 模式与内模式之间的映射 C: 模式 D: 三级模式 2、数据库系统的数据独立性体现在||B||。 A: 不会因为数据...
  • 近年来,随着计算机技术与网络技术的发展,特别是 ...分布式数据库( Distributed DataBase , DDB )比较确切的定义是:分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每...
  • 4. 下列四项中, 不属于数据库系统特点的是( C) 。 A. 数据共享B. 数据完整性C. 数据冗余度高-->低! D. 数据独立性高 5. 数据库系统的数据独立性体现在( 8) 。 A不会因为数据的变化而影响到应用程序 B.不会...
  • 数据库系统概论第五版 课后习题答案王珊

    万次阅读 多人点赞 2020-01-11 14:15:14
    试述数据、数据库数据库系统数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是可分的。解析在现代计算机...
  • 数据库设计,广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统,狭义的讲,是设计数据本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。 数据库设计的一般定义 数据库...
  • Word 格式 试题一 一单项选择题 得 分 本大题共 20 小题每小题 2 分共 40 分 ) 在每小题列出的四个备选项... 下列四项中不属于数据库系统的特点的是 A数据结构化 B数据由 DBMS统一管理和控制 C数据冗余度大 D数据独立性
  • 数据库系统概论期末复习(选择题)

    千次阅读 多人点赞 2019-12-30 19:54:32
    1.数据独立性是指___________ 。 A.数据之间的相互独立 B.... C.数据的逻辑结构与物理结构相互独立 D....2.数据库系统与文件系统的主要区别是 。...文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 ...
  • 下列四项中不属于数据库系统的主要特点的是 A数据结构化 B数据的冗余度小 C较高的数据独立性 D 程序的标准化 2. 数据的逻辑独立性是指 A内模式改变模式不变 B模式改变内模式不变 C模式改变外模式和应用程
  • 下列四项中不属于数据库系统的主要特点的是 A数据结构化 C较高的数据独立性 2. 数据的逻辑独立性是指 B数据的冗余度小 D程序的标准化 内模式改变模式不变 模式改变内模式不变 模式改变外模式和应用程序不
  • 第八章数据库并发控制    一、选择题 1.为了防止一个用户的工作不适当地影响另一个用户,应该采取(D)。 A. 完整性控制 B. 访问控制 C. 安全性控制 D....A....封锁 B....C....3.下列不属于并发操作带来的
  • 试题一 一单项选择题 得 分 本大题共 20 小题每小题 2 分共 40 分 ) 在每小题列出的四个备选项中... 下列四项中不属于数据库系统的特点的是 A数据结构化 B 数据由 DBMS 统一管理和控制 C数据冗余度大 D数据独立性高 3
  • 1. 得 分 数据库系统的核心是 A数据库C数据模型 Word 格式 试题一 一单项选择题 本大题共 20 小题每... 下列四项中不属于数据库系统的特点的是 A数据结构化 B数据由 DBMS统一管理和控制 C数据冗余度大 D数据独立性高 3
  • 数据库系统---数据库设计

    千次阅读 2018-08-18 08:20:34
    直观设计法又称单步逻辑设计法,它依赖于设计者的知识、经验和技巧,缺乏工程规范的支持和科学根据,设计质量也稳定,因此越来越适应信息管理系统发展的需要。为了改变这种状况,1978 年 10 月来自 30 多个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,000
精华内容 21,600
关键字:

下列不属于数据库系统的是