文档库 最新最全的文档下载
当前位置:文档库 › 数据库第六章习题答案

数据库第六章习题答案

数据库第六章习题答案
数据库第六章习题答案

第六章习题答案

一、选择填空

1、A

2、C

3、D

4、B

5、D

6、A

7、C

8、A

9、D 10、A

11、C 12、A 13、B 14、C 15、C 16、D 17、B 18、C 19、A 20、D

21、C 22、B

二、判断下列描述的正确性,对者划√,错者划×。

1、√

2、×

3、×

4、×

5、√

6、√

7、×

8、√

9、×10、√

11、√12、√13、√14、√15、×16、√17、√18、√19、√20、×

21、×22、×

三、分析下列程序的输出结果。

1、运行该程序输出结果如下所示。

Default constructor called

Constructor called

a=0,b=0

a=4,b=8

2、运行该程序输出结果如下所示。

a=7,b=9

3、运行该程序输出结果如下所示。

104

4、运行该程序输出结果如下所示。

1035,789.504

5、运行该程序输出结果如下所示。

1

{}

{0,1,2,3,4,5,6,7,8}

1

{11,12,13,14,15,16,17,18,19}

{19,18,17,16,15,14,13,12,11}

6、运行该程序输出结果如下所示。

Starting1:

Default constructor called.

Default constructor called.

Default constructor called.Eding1:

Starting2:

Constructor: a=5,b=6

Constructor: a=7,b=8

Constructor: a=9,b=10

Ending2:

Destructor called.a=9,b=10

Destructor called.a=7,b=8

Destructor called.a=5,b=6

Destructor called.a=5,b=6

Destructor called.a=3,b=4

Destructor called.a=1,b=2

7、运行该程序输出结果如下所示。

Default constructor called.

Default constructor called.

Default constructor called.

Default constructor called.

Destructor called.

Constructor1 called.

Destructor called.

Constructor2 called.

Destructor called.

x=0,y=0

x=5,y=0

x=2,y=3

Destructor called.

Destructor called.

Destructor called.

8、运行该程序输出结果如下所示。

Constructor called.0

Constructor called.5

Destructor called.5

5

Destructor called.5

9、运行该程序输出结果如下所示。

Constructor called.5

5

Destructor called.5

10、运行该程序输出结果如下所示。

Default Constructor called.

Constructor:real=6.8,imag=0

Constructor:real=5.6,imag=7.9

0+0I

6.8+0I

5.6+7.9I

Constructor:real=1.2,imag=3.4

Constructor:real=5,imag=0

Default Constructor called.

1.2+3.4I

5+0I

0+0I

11、答:

⑴该程序中用string.h中所包含的函数有3种,它们是strcpy( )、strcat( )和strlen( ).

⑵该程序中使用了函数重载。它们是下述两个构造函数重载:String( )和String(const char * str)。

⑶类中成员函数Setc( )的功能是用来设置字符数组中某位置的一个指定字符。

⑷类中成员函数Getc( )的功能是用来从某个字符数组中获取指定位置的字符。

⑸类中成员函数Append( )的功能是在一个字符数组中追加一个指定的字符串,即将指定的字符串添加到已知串的后边。

⑹不行。

⑺该程序中有两处使用了new运算符。

⑻运行该程序输出结果如下所示。

empty.

a string.

9

a string.

i

this a string.

四、改正以下程序中的错误。

1、该程序中point类的构造函数定义不正确,在main()中队数据成员的访问不正确,修改如下:

#include

class point

{

int x1,x2;

public:

point(int x,int y){point::x=x;point::y=y;}

void disp()

{

cout<

cout<

}

//……

};

void main()

{

point data(5,5);

data.disp();

}

2、在main()函数中的p.x+=5和p.y+=6两个语句是错误的,因为保护数据仅能被类的成员函数访问。

五、按下列要求编写程序。

1、程序内容如下所示。

#include

class Test

{

public:

Test(){}

Test(int i,int j=20)

{

t1=i;

t2=j;

t+=j-i;

}

static int fun(Test&T);

friend int add(Test&T); private:

int t1,t2;

static int t;

};

int Test::fun(Test&T)

{

t+=T.t;

return t;

}

int add(Test&T)

{

int n=T.t1+T.t2;

return n;

}

int Test::t=5;

void main()

{

Test a1,a2(10),a3(15,25);

cout<

cout<

}

2、程序内容如下所示。

#include

#include

class Product

{

char *name;

int price;

int quantity;

public:

Product(char *n,int p,int q)

{

name =new char[strlen(n)+1];

strcpy(name,n);

price=p;

quantity=q;

}

{

if(name)

{

delete [] name;

name=0;

}

}

void buy(int money)

{

int n,r;

n=money/price;

if(n>quantity)

cout<<"数量不够"<

else

{

quantity-=n;

r=money%price;

cout<<"产品:"<

cout<

}

}

void get() const

{

cout<<"产品:"<

};

void main()

{

Product p1("电视机",2000,15);

p1.buy(7000);

p1.get();

p1.buy(4500);

p1.get();

}

3、程序内容如下所示。

#include

#include

class CDate

{

private:

int m_nDay;

int m_nMonth;

int m_nYear;

CDate();

CDate(int day,int month,int year);

void Display();

void AddDay();

void SetDate(int day,int month,int year);

~CDate();

private:

bool IsLeapYear(); //判断该年是否为闰年};

CDate::CDate()

{

}

CDate::CDate(int day,int month,int year)

{

m_nDay=day;

m_nMonth=month;

m_nYear=year;

}

void CDate::Display()

{

char day[5];

char month[5];

char year[5];

_itoa(m_nDay,day,10);

_itoa(m_nMonth,month,10);

_itoa(m_nYear,year,10);

cout<

void CDate::AddDay()

{

m_nDay++;

if (IsLeapYear())

{

if((m_nMonth==2)&&(m_nDay==30))

{

m_nMonth++;

m_nDay=1;

return;

}

}

else

{

if((m_nMonth==2)&&(m_nDay==29))

m_nMonth++;

m_nDay=1;

return;

}

}

if(m_nDay>31)

{

if(m_nMonth==12)

{

m_nYear++;

m_nMonth=1;

m_nDay=1;

}

else

{

m_nMonth++;

m_nDay=1;

}

}

}

void CDate::SetDate(int day,int month,int year) {

m_nDay=day;

m_nMonth=month;

m_nYear=year;

}

CDate::~CDate()

{

}

bool CDate::IsLeapYear()

{

bool bLeap;

if (m_nYear%4!=0)

bLeap=false;

else if(m_nYear%100!=0)

bLeap=true;

else if(m_nYear%400!=0)

bLeap=false;

else

bLeap=true;

return bLeap;

}

void main()

CDate d;

d.SetDate(2001,2,28);

cout<<"当前日期=>:";

d.Display();

d.AddDay();

cout<<"当前日期加1=>:";

d.Display();

}

4、程序内容如下所示。

#include

class Tc

{

private:

double unlead,lead,total;

int unprice,price;

public:

Tc(){unprice=17;price=16;}

void getdata()

{

cout<<"无铅汽油总量;"; cin>>unlead;

cout<<"有铅汽油总量;"; cin>>lead;

total=unprice*unlead+price*lead; }

void disp()

{

cout<<"总收入:"<

};

void main()

{

Tc A;

A.getdata();

A.disp();

}

5、程序内容如下所示。

#include

class CFactorial

{

int value;

int fact;

public:

CFactorial(int val);

void CalculateFactorial();

void Display();

};

CFactorial::CFactorial(int val)

{

value=val;

fact=1;

}

void CFactorial::CalculateFactorial() {

int i=value;

while(i>1)

fact*=i--;

}

void CFactorial::Display()

{

cout<

void main()

{

CFactorial A(5);

A.CalculateFactorial();

A.Display();

}

6、程序内容如下所示。

#include

#include

class rectangle

{

private:

float ledge,sedge;

public:

rectangle(){};

rectangle(float a,float b)

{

ledge=a;

sedge=b;

};

float area()

{

return ledge*sedge;

};

void addarea(rectangle r1,rectangle r2)

{

cout<<"总面积:"<

};

void main()

{

rectangle A(3.5,2.5),B(4.2,3.8),C;

C.addarea(A,B);

}

7、程序内容如下所示。

#include

#include

class rectangle

{

private:

float ledge,sedge;

public:

rectangle(){};

rectangle(float a,float b)

{

ledge=a;

sedge=b;

};

float area()

{

return ledge*sedge;

};

void showlength()

{

cout<<"周长:"<<(ledge+sedge)*2<

}

rectangle tlength(rectangle r2)

{

rectangle temp;

temp.ledge=ledge+r2.ledge;

temp.sedge=sedge+r2.sedge;

return temp;

}

};

void main()

{

rectangle A(3.5,2.5),B(4.2,3.8);

cout<<"A";

A.showlength();

cout<<"B";

B.showlength();

rectangle C=A.tlength(B);

cout<<"C";

C.showlength();

}

8、程序内容如下所示。

#include

#include

class Line

{

private:

double x1,x2,y1,y2;

public:

Line(){};

Line(double a,double b,double c,double d)

{

x1=a;y1=b;x2=c;y2=d;

cout<<"线段端点"<

}

friend twoline(Line l1,Line l2)

{

double r1=l2.y1*(l2.x2-l1.x1)-l1.y1*(l2.x2-l2.x1)+(l1.x1-l2.x1)*(l2.y2-l2.y1);

double r2=(l1.y2-l1.y1)*(l2.x2-l2.x1)-(l1.x2-l1.x1)*(l2.y2-l2.y1);

double r=r1/r2;

double t=((l1.x1-l2.x1)+r*(l1.x2-l1.x1))/(l2.x2-l2.x1);

if (r>0&&r<1&&t>0&&t<1)

cout<<""<

else if (r>0&&r<1&&t>=1)

cout<<""<

else if((r>=1 || r<=0)&& t>0&&t<1)

cout<<""<

else

cout<<""<

}

};

void main()

{

Line A(2,2,18,18),B(1,12,19,5);

twoline(A,B);

}

9、本题涉及两个类student和cdegree,前者为学生类,包含学生的学号(no),姓名(name)和成绩(degree),而成绩degree是类cdegree的对象。cdegree类有3个数据成员,分别为数学(math),英语(english)和物理(phy)分数。

程序内容如下所示。

#include

class student

{

int no;

char name[10];

class cdegree

{

public:

int math;

int english;

int phy;

}degree;

public:

void getdata()

{

cout<<"学号:";

cin>>no;

cout<<"姓名:";

cin>>name;

cout<<"数学分数:";

cin>>degree.math;

cout<<"英语分数:";

cin>>degree.english;

cout<<"物理分数:";

cin>>degree.phy;

}

void disp()

{

cout<<"学号:"<

cout<<"姓名:"<

cout<<"数学分数:"<

}

};

void main()

{

student stud;

stud.getdata();

stud.disp();

}

10、程序内容如下所示。

#include

class Student

{

int english,computer,total;

public:

void getscore();

void display();

void sort(Student *);

~Student();

};

void Student::getscore()

{

cout<<"输入英语成绩";

cin>>english;

cout<<"输入计算机成绩";

cin>>computer;

total=english+computer;

}

void Student::sort(Student *p)

{

int tmp,i,j;

for(j=0;j<2;j++)

for(i=0;i<2;i++)

if (totaltotal)

{

tmp=total;

total=p->total;

p->total=tmp;

tmp=english;

english=p->english;

p->english=tmp;

tmp=computer;

computer=p->computer;

p->computer=tmp;

}

}

void Student::display()

{

cout<<"英语="<

void main()

{

Student *A[3];

for (int j=0;j<3;j++)

{

A[j]=new Student;

cout<<"学生"<

A[j]->getscore();

}

int i;

for (j=0;j<2;j++)

for(i=0;i<2;i++)

A[i]->sort(A[i+1]);

cout<

A[i]->display();

}

11、程序内容如下所示。

#include

struct list //定义栈

{

int data;

list *next;

};

class Stack //定义一个栈操作类

{

list *ptr;

public:

Stack(){ptr=NULL;}

void push(int i);

int pop();

};

void Stack::push(int x) //入栈成员函数{

list *newnode=new list;

newnode->data=x;

newnode->next=ptr;

ptr=newnode;

}

int Stack::pop() //出栈成员函数{

list *top;

int value;

value=ptr->data;

top=ptr;

ptr=ptr->next;

delete top;

return value;

}

void main()

{

Stack A;

int arr[]={5,2,8,1,4,3,9,7,6};

cout<<"入栈顺序:";

for (int i=0;i<9;i++)

{

cout<

A.push(arr[i]);

}

cout<

for (i=0;i<9;i++)

cout<

cout<

}

12、程序内容如下所示。

#include

struct list

{

int data;

list *next;

};

class Queue

{

list *ptrf,*ptrb; //队首和队尾指针public:

Queue()

{

ptrf=ptrb=NULL;

}

void enqueue(int);

int dequeue();

};

void Queue::enqueue(int x) //入队成员函数{

list *newnode=new list;

newnode->data=x;

newnode->next=NULL;

if (ptrb==NULL)

ptrf=ptrb=newnode;

else

{

ptrb->next=newnode;

ptrb=newnode;

}

};

int Queue::dequeue() //出队成员函数{

list *tmp;

int value;

value=ptrf->data;

tmp=ptrf;

ptrf=ptrf->next;

delete tmp;

return value;

}

void main()

{

Queue A;

int arr[]={3,12,8,9,11};

cout<<"入队顺序;";

for (int i=0;i<5;i++)

{

cout<

A.enqueue(arr[i]);

}

cout<

for(i=0;i<5;i++)

cout<

cout<

}

13、程序内容如下所示。

#include

#include

typedef struct tree

{

int data;

tree *left,*right,*father;

}*bstree;

class Btree

{

static int n;

static int m;

public:

tree *root;

Btree()

{

root=NULL;

}

void create_Btree(int);

void inorder(bstree); //中序遍历

void display() {cout<

int print(bstree,int); //输出要查找的值对应的双亲结点的内容

};

int Btree::n=0;

int Btree::m=0;

int Btree::print(bstree p,int k)

{

if(p==NULL)return 0;

else

{

if(p->data!=k)

{

print(p->left,k);

print(p->right,k);

}

else

{

cout<father->data<

}

return 0;

}

}

void Btree::create_Btree(int x)

{

bstree newnode=new tree;

newnode->data=x;

newnode->right=newnode->left=NULL;

if(root==NULL)

root=newnode;

else

{

bstree back;

bstree current=root;

while(current!=NULL)

{

back=current;

if(current->data>x)

current=current->left;

else

current=current->right;

}

if(back->data>x)

{back->left=newnode;newnode->father=back;}

else

{back->right=newnode;newnode->father=back;}

}

}

int Btree::count(bstree p)

{

if(p==NULL)

return 0;

else

return count(p->left)+count(p->right)+1; //这是运用了函数嵌套即递归的方法。

}

void Btree::inorder(bstree temp) //这是中序遍历二叉树,采用了递归的方法。

{

if(temp!=NULL)

{

inorder(temp->left);

cout<data<<" ";

inorder(temp->right);

}

}

void main()

{

Btree A;

int array[]={7,4,1,5,12,8,13,11};

int k;

k=sizeof(array)/sizeof(array[0]);

cout<<"建立排序二叉树顺序: "<

for(int i=0;i

{

cout<

A.create_Btree(array[i]);

}

cout<

cout<<"二叉树节点个数:"<

A.display();

}

14、程序内容如下所示。#include

#include

struct list

{

int data;

list *next;

};

class Stack

{

list *ptr;

public:

Stack(){ptr=NULL;}

void push(int i);

int pop();

int empty()

{

if (ptr==NULL) return 1; else return 0;

}

};

void Stack::push(int x) {

list *newnode=new list; newnode->data=x; newnode->next=ptr;

ptr=newnode;

}

int Stack::pop()

{

list *top;

int value;

value=ptr->data;

top=ptr;

ptr=ptr->next;

delete top;

return value;

}

class Queue

{

list *ptrf,*ptrb; public:

Queue()

{

ptrf=ptrb=NULL;

}

void enqueue(int);

int dequeue();

};

void Queue::enqueue(int x)

{

list *newnode=new list;

newnode->data=x;

newnode->next=NULL;

if (ptrb==NULL)

ptrf=ptrb=newnode;

else

{

ptrb->next=newnode;

ptrb=newnode;

}

};

int Queue::dequeue()

{

list *tmp;

int value;

value=ptrf->data;

tmp=ptrf;

ptrf=ptrf->next;

delete tmp;

return value;

}

void main()

{

Stack S;

Queue Q;

char ch;

cout<<" 输入数据:";

while((ch=getchar())!='.')

{

S.push(ch);

Q.enqueue(ch);

}

while(!S.empty() && S.pop()==Q.dequeue()); if (S.empty())

cout<<"输入的是回文数据。"<

数据库原理与应用试题及答案

一、单选题(共20分,每题1分) 1.DB、DBMS和DBS三者之间的关系是() A. DB包括DBMS和DBS B. DBS包括DB和DBMS C. DBMS包括DB和DBS C. DBS与DB和DBMS无关 2.在数据库系统中,读脏数据是指一个事务读了另一个事务() A. 未更新的数据 B. 未撤销的数据 C. 未提交的数据 D. 未刷新的数据 3.加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现() A. 活锁 B. 死锁 C. 读-写冲突 D. 写-写冲突 4.语句DELETE FROM SC表明() A. 删除SC中的全部记录 B. 删除基本表SC C. 删除基本表SC中的列数据 D. 删除基本表SC中的部分行 5.数据库设计阶段分为() A. 物理设计阶段、逻辑设计阶段、编程和调试阶段 B. 模型设计阶段、程序设计阶段和运行阶段 C. 方案设计阶段、总体设计阶段、个别设计阶段和编程阶段 D. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 6.关系笛卡尔积运算记号R×S表示() A. R为关系名,S为属性名 B. R和S均为属性名 C. R为属性名,S为关系名 D. R和S均为关系名 7.在DB应用中,一般一条SQL语句可产生或处理一组记录,而DB主语言语句 一般一次只能处理一条记录,其协调可通过哪种技术实现() A. 指针 B. 游标 C. 数组 D. 栈 8.下列说法中不正确的是() A. 任何一个包含两个属性的关系模式一定满足3NF B. 任何一个包含两个属性的关系模式一定满足BCNF C. 任何一个包含三个属性的关系模式一定满足3NF D. 任何一个关系模式都一定有码

数据库习题与答案

一.选择题: 1、数据库分析与设计中,其设计对象称客观世界的( ) A、逻辑对象 B、目标对象 C、实体对象 D、需求对象 答案:B (150) 2、数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作就是 ( ) A、建立库结构 B、扩充功能 C、加载数据 D、系统调试 答案:B (150) 3、通常用以下的顺序来完成数据库的设计工作( ) A、概念设计、物理设计、逻辑设计 B、逻辑设计、概念设计、物理设计 C、概念设计、逻辑设计、物理设计 D、物理设计、逻辑设计、概念设计 答案:C (150) 4、在数据库设计中,在概念设计阶段可用E-R方法,其设计出的图称为( ) A、实物示意图 B、实用概念图 C、实体表示图 D、实体联系图 答案:D (153) 5、 E-R图就是数据库设计的工具之一,它适用于建立数据库的( ) A、概念模型 B、逻辑模型 C、结构模型 D、物理模型 答案:A (155) 6、在关系数据库设计中,完成设计关系模式的任务就是属于( ) A、需求分析阶段 B、概念设计阶段 C、逻辑设计阶段 D、物理设计阶段 答案:C (157) 7、数据库逻辑设计的主要任务就是( ) A、建立E-R图与说明书 B、创建数据库说明 C、建立数据流图 D、把数据送入数据库 答案:B (158) 二.填空题 1、数据库概念设计就是在数据需求分析基础上进行的,其目的就是分析数据间的内在语义 关联,在此基础上建立一个数据的______________。 答案:抽象模型(152) 2、数据库的逻辑设计的基本方法就是将E-R图转换成指定RDBMS中的______________, 此外还包括关系的规范化以及性能调整,最后就是约束条件设置。 答案:关系模式(156) 3、数据库的逻辑设计的基本方法就是将E-R图转换成指定RDBMS中的关系模式,此外还 包括______________以及性能调整,最后就是约束条件设置。 答案:关系的规范化(156) 4、数据库的逻辑设计的基本方法就是将E-R图转换成指定RDBMS中的关系模式,此外还

数据库原理试题及答案

全国2001年10月自学考试数据库原理试题及答案2 作者:ryan 点击:时间:2003-10-11 上午 23:05:00 来源: 第一部分选择题 (共30分) 一、单项选择题 (本大题共15小题,每小题2分,共30分) 在每小题列出的四个选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。错选或未选均无分。 1. 单个用户使用的数据视图的描述称为【】 A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 2. 子模式DDL用来描述【】 A. 数据库的总体逻辑结构 B. 数据库的局部逻辑结构 C. 数据库的物理存储结构 D. 数据库的概念结构 3. 在DBS中,DBMS和OS之间的关系是【】 A. 相互调用 B. DBMS调用OS C. OS调用DBMS D. 并发运行 4. 五种基本关系代数运算是【】 A. ∪,-,×,π和σ B. ∪,-,∞,π和σ C. ∪,∩,×,π和σ D. ∪,∩,∞,π和σ 5. 当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是【】 A. 左外联接 B. 右外联接 C. 外部并 D. 外联接 6. 下列聚合函数中不忽略空值 (null) 的是【】 A. SUM (列名) B. MAX (列名) C. COUNT ( * )

D. AVG (列名) 7. 设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F 【】 A. 是无损联接,也是保持FD的分解 B. 是无损联接,但不保持FD的分解 C. 不是无损联接,但保持FD的分解 D. 既不是无损联接,也不保持FD 的分解 8. 关系模式R分解成ρ = {R1,…,Rk},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r) 间的关系满足【】 A. rí mρ(r) B. mρ(r) í r C. r = mρ(r) D. r≠mρ(r) 9. 在数据库设计中,将ER图转换成关系数据模型的过程属于【】 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 10. SQL中,下列涉及空值的操作,不正确的是【】 A. AGE IS NULL B. AGE IS NOT NULL C. AGE = NULL D. NOT (AGE IS NULL) 11. 如果事务T获得了数据项Q上的排它锁,则T对Q 【】 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读不能写 12. DBMS中实现事务持久性的子系统是【】 A. 安全性管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. 恢复管理子系统 13. SQL的全局约束是指基于元组的检查子句和【】 A. 非空值约束 B. 域约束子句 C. 断言

数据库原理例题及解答

一、实验目的: 1、了解SQL语言的特点和基本概念。 2、能够针对某种具体的DBMS(本实验采用Access2003),熟练地运用单表查询、连接查询、嵌套查询、集合 查询等各种SQL查询语句对数据库中的表进行操作。 3、对相同的查询要求,能够采用多种查询方法实现,并能分析各种方法的优劣,从中选择合适的方法。 二、实验过程: 1、Print the names of professors who work in departments that have fewer than 50 PhD students. 解:(1)分析:本题是查询在博士生人数少于50个人的系工作的教师名字。查询教授名字可以通过prof 表,而所查询的教授名字是有限制条件的, 他所工作的系名要属于特定的集合(所有系名的一个子集),显然这个子集可以通过查询 dept表获得,所以带有谓词in的嵌套子查询可以实现题目要求。 (2)语句实现: ' SELECT Prof.字段1 FROM Prof WHERE Prof.字段2 IN (SELECT Dept.字段1 FROM Dept WHERE Dept.字段2 < 50); ****************************************************; (3)查询结果: | 2、Print the name(s) of student(s) with the lowest gpa 解:(1)分析:本题是查询成绩点最低的学生的名字。最低的成绩点可以在student表中通过函数min(gpa)获得,而所查询学生的名字的限制为成绩点等于min(gpa), 因此可用如下嵌套子查询实现。 (2)语句实现: > SELECT Student.字段2

数据库SQL查询例题及解答

1 实验目的 1.熟悉数据库的交互式SQL工具。 2.熟悉通过SQL对数据库进行操作。 3.完成作业的上机练习。 2 实验工具sql server 利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。 3 实验内容和要求 1)实验内容: 创建数据库boat,包括Sailors,Boats,Reserves三个表,表结构如下: Sailors(sid: integer, sname: string, rating: integer, age: real) 船员(船员编号,姓名,级别,年龄) Boats(bid: integer, bname: string, color: string) 船(船编号,名称,颜色) Reserves(sid: integer, bid: integer, day: date) 租赁(船员编号,船编号,日期) (注:下划线表示主键),并插入一定数据。 2)完成下列要求:

(1)查询所有船员的信息 (2)查询所有姓王的船员的信息 (3)查询租用过103号船的船员姓名 (4)查找租用过船只的船员编号 (5)查找rating>7且年龄>25的水手编号 (6)查找租用过红船和绿船的水手名字 (7)查找租用过红船或绿船的水手编号 (8)查找最年长的水手的年龄和名字 (9)在18岁以上水手中,对于每个rating级别中最少有两个水手以上的组中最年轻水手的年龄 (10)查找每条红色船只被租用的次数 (11)把30岁以上船员的级别调高一级 (12)删除所有年龄超过40岁的船员信息 (13)建立年龄超过25岁的船员的视图 (14)对(13)建立的视图,举一操作的例子(查询、删除、修改均可) 2)要求: a.建立boat数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 b.记录完成查询要求的SQL语句脚本。 c.记录完成查询的查询结果。

数据库原理试题和答案

全国2001年10月自学考试数据库原理试题及答案2 作者:ryan 点击:时间:2003-10-11 上午23:05:00 来源: 第一部分选择题(共30分) ?一、单项选择题 (本大题共15小题,每小题2分,共30分) 在每小题列出得四个选项中只有一个就是符合题目要求得,请将其代码填在题后得括号内。错选或未选均无分. 1、单个用户使用得数据视图得描述称为【】 A、外模式? B、概念模式?C、内模式?D、存储模式? 2、子模式DDL用来描述【】?A、数据库得总体逻辑结构?B、数据库得局部逻辑结构 C、数据库得物理存储结构 D、数据库得概念结构 ?3、在DBS中,DBMS与OS之间得关系就是【】?A、相互调用 B、DBMS调用OS?C、OS调用DBMS?D、并发运行 4、五种基本关系代数运算就是【】 A、∪,-,×,π与σ? B、∪,-,∞,π与σ? C、∪,∩,×,π与σ?D、∪,∩,∞,π与σ??5、当关系R与S自然联接时,能够把R与S原该舍弃得元组放到结果关系中得操作就是【】 A、左外联接?B、右外联接?C、外部并 D、外联接 ?6、下列聚合函数中不忽略空值 (null)得就是【】?A、 SUM(列名) B、MAX (列名) C、 COUNT ( * )?D、AVG (列名) ?7、设关系模式R (A,B,C),F就是R上成立得FD集,F ={B→C},则分解ρ = {AB,BC}相对于F【】?A、就是无损联接,也就是保持FD得分解?B、就是无损联接,但不保持FD得分解 C、不就是无损联接,但保持FD得分解? D、既不就是无损联接,也不保持FD 得分解? 8、关系模式R分解成ρ={R1,…,Rk},F就是R上得一个FD集,那么R中满足F得每一个关系r,与其投影联接表达式mρ(r)间得关系满足【】?A、rí mρ(r) B、mρ(r) í r?C、r= mρ(r)?D、r≠mρ(r) 9、在数据库设计中,将ER图转换成关系数据模型得过程属于【】?A、需求分析阶段?B、逻辑设计阶段 C、概念设计阶段? D、物理设计阶段? 10、 SQL中,下列涉及空值得操作,不正确得就是【】 A、 AGE IS NULL? B、 AGE IS NOT NULL C、AGE = NULL?D、NOT(AGE IS NULL) 11、如果事务T获得了数据项Q上得排它锁,则T对Q 【】 A、只能读不能写 B、只能写不能读 C、既可读又可写 D、不能读不能写 ?12、DBMS中实现事务持久性得子系统就是【】?A、安全性管理子系统?B、完整性管理子系统?C、

数据库原理及应用 练习题及参考答案

数据库原理与应用练习题及参考答案 一、选择题 1.一下关于关系的说法正确的是( A ) A.一个关系就是一张二维表 B.在关系所对应的二维表中,行对应属性,列对应元组。 C.关系中各属性不允许有相同的域。 D.关系的各属性名必须与对应的域同名。 2.关系数据表的关键字可由( D )属性组成。 A.一个 B.两个 C.多个 D.一个或多个 3.进行自然连接运算的两个关系( A ) A.至少存在一个相同的属性名 B.可不存在任何相同的属性名 C.不可存在个相同的属性名 D.所有属性名必须完全相同 4.概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的( B )。 A.数据模型 B.概念模型 C.层次模型 D.关系模型 5.Access 2010 数据库具有很多特点,下列叙述中,正确的是( B )。 A. Access 2010数据表可以保存多种数据类型,但是不包括多媒体数 B. Access 2010可以通过编写应用程序来操作数据库中的数据 C. Access 不能支持 Internet/Intranet 应用 D. Access 2010 使用切换面板窗体管理数据库对象 6.数据表的基本对象是( A ) A.表 B.查询 C.报表 D.窗体 7.利用Access 2010 创建数据库文件,其扩展名是( B ) A.mdb B.accdb C.xlsx D. acc 8.启动Access 2010 后,最先显示的是什么界面( C ) A.数据库工作界面 B.“打开”窗口 C. Backstage D导航窗格 9.在 Access 数据库对象中,不包括的是( B ) A.表 B.向导 C.窗体 D.模块 10.表的组成内容包括( C ) A.查询和字段 B.报表和字段 C.字段和记录 D.记录和窗体 11.在 Access 2010 数据库的表设计视图中,不能进行的操作是( A ) A.修改字段类型 B.设置索引 C.增加字段 D.删除记录

学生选课数据库SQL语句练习题(详细分解答案)

学生选课数据库SQL语句练习题(详细分解答案)

一、设有一数据库,包括四个表:学生表(Student)、课程表 (Course)、成绩表(Score)以及教师信息表(Teacher)。 四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构 表(一)Student 含义 属性名数据类型可否为 空 Sno Char(3) 否学号(主键) Sname Char(8) 否学生姓名 Ssex Char(2) 否学生性别 Sbirthday datetime 可学生出生年 月 Class Char(5) 可学生所在班 级 表(二)Course 含义 属性名数据类型可否为 空 Cno Char(5) 否课程号(主 键) Cname Varchar(10) 否课程名称 Tno Char(3) 否教师编号(外 键) 表(三)Score 含义 属性名数据类型可否为 空 Sno Char(3) 否学号(外键) Cno Char(5) 否课程号(外 键) Degree Decimal(4,1) 可成绩

主码:Sno+ Cno 表(四)Teacher 含义 属性名数据类型可否为 空 Tno Char(3) 否教师编号(主 键)Tname Char(4) 否教师姓名Tsex Char(2) 否教师性别Tbirthday datetime 可教师出生年 月 Prof Char(6) 可职称Depart Varchar(10) 否教师所在部 门 表1-2数据库中的数据 表(一)Student Sno Sname Ssex Sbirthday class 108 曾华男1977-09-01 95033 105 匡明男1975-10-02 95031 107 王丽女1976-01-23 95033 101 李军男1976-02-20 95033 109 王芳女1975-02-10 95031 103 陆君男1974-06-03 95031 表(二)Course Cno Cname Tno 3-105 计算机导论825 3-245 操作系统804 6-166 数字电路856

数据库原理-期末考试试题及答案

数据库原理-期末考试试题及答案 (本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,错选、 多选或未选均无分。 1. 要保证数据库的数据独立性,需要修改的是() A.三层模式之间的两种映射B.模式与内模式 C.模式与外模式D.三层模式 2. 下列四项中说法不正确的是() A.数据库减少了数据冗余B.数据库中的数据可以共享 C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性 3. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员, 从职员到部门的联系类型是() A.多对多B.一对一 C.多对一D.一对多 4.将E-R模型转换成关系模型,属于数据库的() A.需求分析B.概念设计 C.逻辑设计D.物理设计 5.五种基本关系代数运算是() A.∪,—,×,π和σB .∪,—,,π和σ C.∪,∩,×,π和σD .∪,∩,,π和σ 6.下列聚合函数中不忽略空值 (NULL) 的是()。 A.SUM (列名) B.MAX (列名) C.COUNT ( * ) D.AVG (列名) 7. SQL中,下列涉及空值的操作,不正确的是()。 A. AGE IS NULL B. AGE IS NOT NULL C. AGE = NULL D. NOT (AGE IS NULL) 8. 已知成绩关系如表1所示。 执行SQL语句: SELECT COUNT(DISTINCT学号) FROM成绩 WHERE分数>60 查询结果中包含的元组数目是() 表1 成绩关系

A. 1 B. 2 C. 3 D. 4 9. 在视图上不能完成的操作是( ) A. 更新视图 B. 查询 C. 在视图上定义新的基本表 D. 在视图上定义新视 图 10. 关系数据模型的三个组成部分中,不包括( ) A. 完整性约束 B. 数据结构 C. 恢复 D. 数据操作 11. 假定学生关系是S (S #,SNAME ,SEX ,AGE ),课程关系是C (C #,CNAME ,TEACHER ), 学生选课关系是SC (S #,C #,GRADE )。 要查找选修“COMPUTER ”课程的“女”学生姓名,将涉及到关系( ) A .S B .S C ,C C .S ,SC D .S ,SC ,C 12. 关系规范化中的删除操作异常是指( ) A .不该删除的数据被删除 B .不该插入的数据被插入 C .应该删除的数据未被删除 D .应该插入的数据未被插入 13. 从E-R 模型关系向关系模型转换时,一个m:n 联系转换为关系模式时,该关系模式的码 是( ) A .M 端实体的码 B .N 端实体的码 C .M 端实体码与N 端实体码组合 D .重新选取其他属性 14.已知关系R={A ,B ,C ,D ,E ,F},F={A →C ,BC →DE ,D →E ,CF →B}。则(AB)F + 的闭包 是( ) A .ABCDEF B .ABCDE C .ABC D .AB 15.设有关系R (A ,B ,C )和S (C ,D )。与SQL 语句select A,B,D from R,S where R.C=S.C 等价的关系代数表达式是( ) A .σR.C=S.C (πA,B,D (R×S)) B .πA,B,D (σR,C= S.C (R×S)) C .σR.C=S.C ((πA,B (R))×(π D (S))) D .σR,C=S.C (πD ((πA,B (R))×S)) 二、多项选择题 (本大题共5小题,每小题2分,共10分) 在每小题列出的四个备选项中有多个是符合题目要 求的,多选、少选、错选、不选均无分。

数据库原理及应用(第2版)习题参考答案..

第1章数据概述 一.选择题 1.下列关于数据库管理系统的说法,错误的是C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率 3.下列说法中,不属于数据库管理系统特征的是C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是D A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于A A.系统软件B.工具软件 C.应用软件D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是B A.数据库B.操作系统 C.应用程序D.数据库管理系统 9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是D A.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端 B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件 C.客户/服务器结构比文件服务器结构的网络开销小 D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享

数据库设计 习题及答案

数据库设计 1.如何构造出一个合适的数据逻辑结构是()主要解决的问题。 A.物理结构设计 B.数据字典 C.逻辑结构设计 D.关系数据库查询 2.概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的()。 A.数据模型 B.概念模型 C.层次模型 D.关系模型 3.数据库设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的()。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 4.数据库物理设计完成后,进入数据库实施阶段,下述工作中,()一般不属于实施阶段的工作。 A.建立库结构 B.系统调试 C.加载数据 D.扩充功能 5.数据库设计可划分为六个阶段,每个阶段都有自己的设计内容,“为哪些关系在哪些属性上建什么样的索引”这一设计内容应该属于()设计阶段。 A.概念设计 B.逻辑设计 C.物理设计 D.全局设计 6.在关系数据库设计中,设计关系模式是数据库设计中()阶段的任务。 A.逻辑设计阶段 B.概念设计阶段 C.物理设计阶段 D.需求分析阶段 7.在关系数据库设计中,对关系进行规范化处理,使关系达到一定的范式,例如达到3NF,这是()阶段的任务。

A.需求分析阶段 B.概念设计阶段 C.物理设计阶段 D.逻辑设计阶段 8.概念模型是现实世界的第一层抽象,这一类最著名的模型是()。 A.层次模型 B.关系模型 C.网状模型 D.实体-联系模型 9.在概念模型中的客观存在并可相互区别的事物称()。 A.实体 B.元组 C.属性 D.节点 10.公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()。 A.多对多 B.一对一 C.一对多 11.关系数据库中,实现实体之间的联系是通过关系与关系之间的()。 A.公共索引 B.公共存储 C.公共元组 D.公共属性 12.数据流程图是用于数据库设计中()阶段的工具。 A.概要设计 B.可行性分析 C.程序编码 D.需求分析 13.在数据库设计中,将E-R图转换成关系数据模型的过程属于()。 A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段 14.子模式DDL是用来描述()。 A.数据库的总体逻辑结构 B.数据库的局部逻辑结构

数据库原理试题及答案

汕头职业技术学院 2009—2010学年度第二学期期中考试试卷 课程名称数据库原理与应用拟题人审题人_____________ 系(校区)计算机系班级姓名学号____________ 一、单项选择题:(将正确答案的编号填在下表中,每小题1.5分,共18分) 1.任何一个满足2NF但不满足3NF的关系模式都不存在() A)主属性对主码的部分依赖 B)非主属性对主码的部分依赖 C)主属性对主码的传递依赖 D)非主属性对主码的传递依赖 2.相对于非关系模型,关系数据模型的缺点之一是() A)查找记录的速度最慢 B)数据结构简单 C)数据独立性高 D)有严格的数学基础 3.创建一个用户数据库时,()数据库的内容(表和视图)就会自动地复制到新创建的数据库中。 A)master B)model C)msdb D)tempdb 4.下列聚合函数中不忽略空值(null)的是() A)sum(列名) B)max(列名) C)count(*) D)avg(列名) 5.关于唯一约束的叙述,错误的是() A)一个表可以定义多个唯一约束 B)唯一约束的值不能重复 C)唯一约束的值不能为null D)一个唯一约束可以施加到多个属性中 6.下列涉及空值的操作,不正确的是() A)age is null B)age is not null C)age=null D)not(age is null) 7.层次模型不能表示()的联系 A)多对多 B)一对多 C)多对一 D)一对一 8.下列关系运算中,()运算不属于专门的关系运算。 A)选择 B)连接 C)投影 D)广义笛卡尔积 9.数据库系统的体系结构是() A)两级模式结构和一级映射 B)三级模式结构和一级映射 C)三级模式结构和两级映射 C)三级模式结构和三级映射 10.单个用户使用的数据视图的描述称为()

数据库原理与应用考试试题及答案

1.消除了非主属性对码的部分函数依赖的1NF的关系模式,必定是()。 A.1NF B.2NF C.3NF D.BCNF 2 .下列关于数据库恢复说法不正确的是() A.事物故障恢复采用日志文件 B.系统故障恢复采用日志文件 C.介质故障恢复采用日志文件 D.以上故障恢复均不采用日志文件 3.下面()不是常用的数据模型? A.关系模型 B.线性模型 C.层次模型 D.网状模型 4 .在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段 5 .DBMS中实现事务持久性的子系统是() A.安全性管理子系统 B.完整性管理子系统 C.并发控制子系统 D.恢复管理子系统 6.数据库与文件系统的根本区别在于() A.提高了系统效率 B.方便了用户使用 C.数据的结构化 D.节省了存储空间 7.SQL语言是()的语言,容易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 8.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。 A.完整性控制 B.访问控制

C.安全性控制 D.并发控制 9.DBMS普遍采用()方法来保证调度的正确性。 A.索引 B.授权 C.封锁 D.日志 10.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。 A.一级封锁协议 B.二级封锁协议 C.三级封锁协议 D.零级封锁协议 11.下面的选项不是关系数据库基本特征的是()。 A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 12.关系模型中实现实体间N:M联系是通过增加一个()。 A.关系实现 B.属性实现 C.关系或一个属性实现 D.关系和一个属性实现 13.关系代数运算是以()为基础的运算。 A.关系运算 B.谓词演算 C.集合运算 D.代数运算 14.数据库设计可划分为七个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上、键什么样的索引”这一设计内容应该属于()设计阶段。 A.概念设计 B.逻辑设计 C.物理设计 D.全局设计 15.SQL语言中的COMMIT语句的主要作用是()。 A.结束程序 B.返回系统 C.提交事务 D.存储数据 16.一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是()。 A.原子性 B.一致性 C.独立性 D.持久性 17.关系的主属性不能取空值,属于()

数据库习题及答案,第三版

2004-2005学年第二学期期末考试 D 2002级计算机科学与技术专业《数据库原理与应用》课程试题 一、选择题(15分,每空1分): 1 .数据库系统中,物理数据独立性( physical data independenee )是指 _ 。 A. 数据库与数据库管理系统的相互独立 B. 应用程序与DBMS 的相互独立 C. 应用程序与存储在磁盘上数据库的物理模式是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立 2. _____________________ 数据库系统的特点是 、数据独立、减少数据冗余、避免数据不一 致和加强了数据保护。 A. 数据共享 B .数据存储 C.数据应用 D .数据保密 3. 数据库管理系统能实现对数据库中数据的查 询、 插入、修改和删除等操作的数据库语言称为 A. 数据定义语言(DDL ) B .数据管理语言 C.数据操纵语言(DML ) D .数据控制语言 4. 在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为①;从表中选出满足某种 条件的元组的操作称为②;_将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为③。 A. 选择 B .投影 C.连接 D.扫描 5. _________________________ 关系模型中,一个候选码 。 A .可由多个任意属性组成 B. 至多由一个属性组成 C. 可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成 D. 必须由多个属性组成 7.数据库中只存放视图的 __________ 。 A .操作 B .对应的数据 C. 定义 D.限制 9.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限, O A. 可靠性 B. —致性 C.完整性 D .安全性 6. SQL 语言是 语言。 A .层次数据库 C .关系数据库 B. 网络数据库 D .非数据库 &关系数据库规范化是为解决关系数据库中 问题而引人的。 A .数据冗余 B. 提高查询速度 C.减少数据操作的复杂性 D .保证数据的安全性和完整性 这主要是为了实现数据库的

数据库原理试题及答案汇编

一、单选题(每小题后的四个备选答案中只有一个是正确的,请将正确答案的字母填到下面表格的对应题号处。每小题 1分,本大题共20分。) 1、下面对数据库特点的不正确叙述是()。 A.数据库中的数据采用统一的模型来表示。 B.数据库中数据之间的联系强。 C.数据库中数据冗余度高。 D.数据库中数据由一个软件统一管理。 2、下面对数据库三级模式结构的叙述中,不正确的是()。 A.三级模式结构可提供数据独立性。 B.三级模式结构通过两级映像来实现数据独立性。 C.模式做了修改,用户的应用程序必须修改。 D.内模式做了修改,模式不必修改。 3、不属于DBA职责的是()。 A.模式定义B.对数据库的权限管理 C.完整性约束D.查看或修改数据库中的数据。 4、下面关于关系代数的不正确叙述是()。 A.对一个关系作投影运算不会改变该关系元组的个数。 B.选择运算是根据某些条件对关系的元组进行筛选。 C.自然联接运算要求两个关系必须有取值域相同的属性。 D.自然联接是F联接的一种特殊情况。 5、下面对“关系模型”的叙述中,不正确的说法是()。 A.关系模型的数据结构就是关系。 B.关系模型中属性的顺序不能任意改变。 C.关系模型不允许在关系中出现两条完全相同的元组。 D.关系模型具有三类完整性约束。 6、下面对关系“键”概念的不正确叙述是()。 A.一个关系可以有多个候选键。 B.候选键是指在一个关系中,能够唯一标识每个元组的属性集。 C.一个关系模式只能有一个“主键”。 D.候选键再添加一个属性便可构成一个“超键”。

7、设关系R和S的属性集相同,W是R的属性集的子集,下面不正确的等式是()。A.πW(R-S)=πW(R)-πW(S) B.σ(F)(R-S)=σ(F)(R)-σ(F)(S) C.σ(F)(R∪S)=σ(F)(R)∪σ(F)(S) D.πW(R∪S)=πW(R)∪πW(S) 8、在关系模式R(U)中,X?U,Y?U,X→Y,且Y不能决定X,则Y与X之间的关系是()。 A.一对一B.一对多C.多对多D.多对一 9、下面对3NF的叙述中,不正确的说法是()。 A.3NF模式中不存属性对侯选键的传递依赖。 B.3NF模式不存在非主属性对侯选键的部分依赖。 C.如果模式R是3NF,那么R一定是2NF。 D.任何一个关系模式都可以既保持函数依赖又无损地分解为一系列3NF集。 10、在()组织结构中,记录是按查找键值升序或降序顺序存储。 A.顺序文件B.堆文件C.散列文件D.聚集文件 11、以下RAID技术中,存取速度最快的是()。 A.RAID 1B.RAID 5C.RAID 0D.RAID 10 12、下面关于SQL Server“索引”概念的不正确叙述是()。 A.任何一个表都必须建索引。 B.一个表只能有一个聚集索引。 C.非聚集索引的索引顺序与主文件的记录存储顺序不保持一致。 D.索引能提高查询速度,但索引不是建的越多越好。 13、下面关于SQL Server数据库系统表的不正确叙述是()。 A.数据库的数据字典信息存储在系统表中。 B.用户可以直接查看、修改系统表中的数据。 C.数据库每个表的定义信息都存放在系统表中。 D.系统表必须存储在主文件中。 14、下面关于事务的ACID属性的叙述中,不正确的说法是()。 A.事务对数据库的所有操作,是一个不可分割的工作单元。这些操作要么全部执行,要么什么也不做。 B.一个事务独立执行的结果,应保持数据库中数据的一致性。确保单个事务的一致性是由应用程序员编写事务程序来实现的。

数据库原理与应用试题及答案

一、单选题(20分,每题1分) 1.关系数据模型的基本数据结构是()。 A. 树 B. 图 C. 索引 D. 关系 2.提供数据库定义、数据操纵、数据控制和数据库维护功能的软件称为()。 A. OS B. DS C. DBMS D. DBS 3.元数据是指()。 A. 数据结构的描述 B. 数据项的描述 C. 数据的来源 D. 基本数据 4.下面对关系中属性的描述,错误的是()。 A. 属性的次序可以任意交换 B. 允许多值属性 C.属性名唯一 D. 每个属性中所有数据来自同一属性域 5.超码、候选码和主码之间的关系是()。 A.超码?候选码?主码 B. 超码?主码?候选码 C. 主码?候选码?超码 D. 主码?超码?候选码 6.关系数据库实现数据之间联系的方法是()。 A. 主码 B. 外码 C. 候选码 D. 超码 7.如下所示关系R(A,B,C,D)中,可以作为主码的属性组是()。 A. AB B. BC C. CD D. AD或BD 8.设有如下所示关系R(A,B)和S(C,D,A),R的主码是A,S的主码是C、 外码是A(参照R.A),则能够插入关系S的元组是()。

A. (1,2,3) B. (3,2,1) C. (1,2,1) D. (4,5,6) 9. 将上题中的2个关系R 和S (未插入元组前)进行R*∞S 后的运算结果包含( ) 个元组。 A. 5 B. 6 C . 3 D. 2 10. 对第8题中的关系R 和S ,若将属性A 定义为S 的外码时使用了ON UPDA TE CASCADE 短语(级联更新),将R 中第一个元组的A 属性值更新为4时,S 中第一个元组A 属性的值( )。 A. 不变 B. 变为4 C . 变为NULL D. 拒绝更新,返回错误信息 11. 设有一个关系R (A ,B ),如果要找出B 属性的最后一个字母为A ,并且至少包 含2个字母的查询条件子句应写成WHERE B LIKE ( )。 A . ‘_A%’ B. ‘_A ’ C. ‘_% A ’ D. ‘%A ’ 12. SQL 中谓词EXIST 可用来测试一个集合是否( )。 A. 有重复元组 B. 有重复列名 C. 为非空集合 D. 有空值 13. 条件子句WHERE 工资>ALL (SELECT 工资 FROM 职工 WHERE 部门号=1) 的含义为( )。 A. 比1号部门中某个职工的工资高 B. 比1号部门中所有职工的工资都高 C. 比1号部门中所有职工的工资总和高 D. 无法比较,返回错误信息 14. 下列关于数据库系统中空值的描述错误的是( )。 A. 包含空值的算术表达式的运算结果为NULL B. COUNT (*)将统计包含空值的行

数据库作业题目及答案

实验三内容补充 在“教学管理系统”中设计了许多查询,上述只介绍其中具有代表性的部分,其余查询读者可依例完成。本系统包括的所有查询如下所示: 说明:同学们在进行后面的表单设计时,需要用到没有设计过的查询,则再进行对应的查询设计,没有设计到的可以不做。 1.90 以上学生信息 2.按班查不及格学生 3.按班级编号查看学生基本信息 4.按班级查教师信息 5.按班级查选课 6.按教师编号查 7.按教师姓名查看授课信息 8.按课程类别查 9.按课程名查 10.按上课地点查 11.按所选课程查 12.按系名查 13.按姓名查看学生基本信息 14.按学分查 15.按学号查看学生基本信息 16.按学号查选课 17.按职称查 18.不及格人次 19.不及格学生信息 20.低于所在班平均分学生 21.各班学生人数统计 22.各系教师人数 23.各职称教师人数 24.教师基本信息表查询 25.教师每周学时总数 26.每班不及格人次 27.每班每门课平均成绩 28.每班男女生人数 29.每班平均成绩 30.每班平均分 31.每名学生平均成绩 32.某学年某学期教师每周学时总数 33.某学期某课不及格信息 34.统计各系教师的人数 35.统计各职称教师的人数 36.统计每门课教师的人数 37.统计有课教师的人数 38.学生相关信息查询 39.学生选课情况 40.有课教师的人数

实验四数据登录窗体设计一 4.1数据登录窗体的向导创建 在Access中创建窗体有人工方式创建和使用窗体向导创建两种方法。人工方式创建窗体,需要创建窗体的每一个控件,并建立控件和数据源之间的联系。而使用窗体向导创建窗体,用户只需按照向导的提示输入有关信息,一步一步地完成。创建过程既简单、快捷,又效率高,因此,在设计Access数据库应用系统时,往往是先使用窗体向导建立窗体的基本轮廓,然后再切换到设计视图使用人工方式进行调整。我们在创建“登录教师档案”窗体时采用的就是这种方法。 利用窗体向导创建“登录教师档案”,窗体的步骤如下: ①双击“窗体”对象中“使用向导创建窗体”选项,启动“窗体向导”如图2-1所示。 图2-1“窗体向导”第一个窗口 ②单击“表/查询”下拉列表框右侧的箭头,列出所有有效的表或者查询数据源,从中选择“表:教师档案表”。 ③在“可用字段”列表框中选择需要在新建窗体中显示的字段,此处,单击按钮选择所有字段。 ④单击“下一步”按钮,弹出如图2-2所示的窗口。在此对话框中,选择“纵栏表”项,这时可以在左边看到所建窗体的布局。

大学《数据库原理》期末考试试题及答案(一)

一、填空题 1.标准的数据库三级模式是概念模式、(内)模式和(外)模式。 2.数据完整性约束分为(静态)约束和(动态)约束。 3.分布式数据库系统的特点是数据的(分布)性和整体的(逻辑)性。 4.在数据库系统中,所有应用程序都通过(DBMS)访问数据库。 5.在数据库的三级模式结构中,数据是按(内)模式的描述存储在磁盘中,按(外)模式提供给用户的。 6.在关系中,能唯一标识元组的属性称为(超键)。 7.在对象关系模型中,属性的符合类型包括:多集类型、数组类型、(结构)类型和(集合)类型。 8.对于函数依赖x→Y,如果Y是X的子集,此函数称为(平凡)函数依赖。 方法的三要素是:实体、属性和(联系)。 10.假设两个事务同时存取同一个数据集,当第一个事务结束之前,第二个事务更新数据库,这就违反了事务的(隔离)性,破坏了DB 的一致性。 11.假设一个学生只属于一个班级,则班级和学生之间是(一对多,1:N)联系;学生可以同时修多门课程,学生和课程之间是(多对多,M:N)联系。 12.结构数据模型的组成包括:数据结构,(数据操作)和(数据完整性约束)。 13.在函数依赖中,平凡的函数依赖根据Armstrong推理规则中的(自反)律就可推出。 14.用有向图结构表示实体类型及实体间联系的数据模型称为(网状)模型。

15.若用户编写程序时,只需指出做什么,不需指出怎么做,这类DML 是(非过程性)DML;关系的DML属于这一类。 16.在SQL中,用(update)命令可以修改表中的数据,用(ALTER)命令可以修改表的结构。 17.在ER图中,菱形框表示(联系)。 18.物理结构设计是设计DB的物理结构,主要包括DB的(存储结构)和存取方法。 19.并发控制的主要方法是采用(封锁机制)。 20.在并行处理中,若干事物相互等待对方释放封锁,称为系统进入(死锁)状态。 的“地址透明性”位于(分片)模式和(分配)模式之间。 二、单选题 1. 位于用户和数据库之间的一层数据管理软件是( C) 2. 一个事务中所有对数据库操作是一个不可分割的操作序列,这称为事务的( A ) A.原子性 B.一致性 C.隔离性 D.持久性 3. 关系代数的五个基本操作是:并、差、选择、投影和( D ) A.等值连接连接 C.自然连接 D.笛卡儿积 4. 在关系数据库中,表与表之间的联系是通过( B )实现的。 A.实体完整性规则 B.参照完整性规则 C.用户自定义的完整性规则 D.主键

相关文档
相关文档 最新文档