理论上是不会出现问题,不过首先一个用户在写表时需要将表锁定,此时其它用户调用此表时就处于等待状态,这些 *** 作都是有数据库管理系统来完成。但如果你的机器性能不佳,那么当多用户同时 *** 作数据库表时就会出现并发性能不佳的问题。
有广告位,就有排期系统啊。
添加广告的同时,就添加此广告位的排期,比如开始时间,结束时间。
你的需求说是按天计算的。那么数据库可以使用联合主键来约束,比如
广告位id+广告要上的那天的0点的时间戳
这样同样一个广告位,同一天,就不会出现重复添加了。
1 大数据学习需要哪些课程
主修课程:面向对象程序设计、Hadoop实用技术、数据挖掘、机器学习、数据统计专分析、高属等数学、Python编程、JAVA编程、数据库技术、Web开发、Linux *** 作系统、大数据平台搭建及运维、大数据应用开发、可视化设计与开发等
2 大数据专业课程有哪些 专业介绍
随着互联网技术的不断发展,当今的时代又被称之为大数据时代。
目前互联网企业对大数据人才需求非常大,培训机构出来的人才也很好找工作,南京课工场最近一批的大数据学员就业就很高,薪资普遍很高。当然,工作好找的前提是你大数据的相关技术要过关哦!
从近两年大数据方向研究生的就业情况来看,大数据领域的岗位还是比较多的,尤其是大数据开发岗位,目前正逐渐从大数据平台开发向大数据应用开发领域覆盖,这也是大数据开始全面落地应用的必然结果。从2019年的秋招情况来看,大数据开发岗位的数量明显比较多,而且不仅需要研发型人才,也需要应用型人才,所以本科生的就业机会也比较多。
对于当前在读的本科生来说,如果不想读研,那么应该从以下三个方面来提升自身的就业竞争力:
第一:提升程序设计能力。动手实践能力对于本科生的就业有非常直接的影响,尤其在当前大数据落地应用的初期,很多应用级岗位还没有得到释放,不少技术团队比较注重学生程序设计能力,所以具备扎实的程序设计基础还是比较重要的。
第二:掌握一定的云计算知识。大数据本身与云计算的关系非常紧密,未来不论是从事大数据开发岗位还是大数据分析岗位,掌握一定的云计算知识都是很有必要的。掌握云计算知识不仅能够提升自身的工作效率,同时也会拓展自身的技术边界。
第三:重视平台知识的积累。产业互联网时代是平台化时代,所以要想提升就业能力应该重视各种开发平台知识的积累,尤其是与行业领域结合比较紧密的开发平台。实际上,大数据和云计算本身就是平台,所以大数据专业的学生在学习平台开发时也会相对顺利一些。
3 大数据专业都要学什么课程
大数据专业有很多课程
4 数据与大数据专业学什么课程
大数据存储阶段:hbase、hive、sqoop。
大数据架构设计阶段:Flume分布式、Zookeeper、Kafka。
大数据实时计算阶段:Mahout、Spark、storm。
大数据数据采集阶段:Python、Scala。
大数据商业实战阶段:实 *** 企业大数据处理业务场景,分析需求、解决方案实施,综合技术实战应用。
5 大数据要学哪些课程
大数据存储阶来段:百hbase、hive、sqoop。
大数度据自架构设计阶段:Flume分布式、Zookeeper、Kafka。
大数据实时计算阶段:Mahout、Spark、storm。
大数据数据采集阶段:Python、Scala。
大数据商业实战阶内段:实 *** 企业大数据处理业务场景,分析需求、解决方案实施,技术实战应用。
6 大数据的课程都有哪些
大数据本身属于交叉学科,涵盖计算机、统计学、数学三个学科的专业知识。所以大数据的课程内容,基本上也是围绕着三个学科展开的。
数理统计方面:数学分析、统计学习、高等代数、离散数学、概率与统计等课程是基本配置。
计算机专业课程:数据结构、数据科学、程序设计、算法分析与设计、数据计算智能、数据库系统、计算机系统基础、并行体系结构与编程、非结构化大数据分析等,也是必备课程。
而想要真正找到工作的话,大数据主流技术框架,也要去补充起来,这才是找工作当中能够获得竞争力的加分项。
7 大数据课程都学什么啊
大数据课程学习的内容有6个阶段:
1阶段
JavaSE基础核专心
2阶段
数据库关键技术属
3阶段
大数据基础核心
4阶段
Spark生态体系框架&大数据高薪精选项目
5阶段
Spark生态体系框架&企业无缝对接项目
6阶段
Flink流式数据处理框架
按照顺序学习就可以了,希望你早日学有所成。
8 大数据专业主要学什么课程
大数据技术专业属于交叉学科:以统计学、数学、计算机为三大支撑性学科;生物、医学、环境科学、经济学、社会学、管理学为应用拓展性学科。
此外还需学习数据采集、分析、处理软件,学习数学建模软件及计算机编程语言等,知识结构是二专多能复合的跨界人才(有专业知识、有数据思维)。
以中国人民大学为例:
基础课程:数学分析、高等代数、普通物理数学与信息科学概论、数据结构、数据科学导论、程序设计导论、程序设计实践。
必修课:离散数学、概率与统计、算法分析与设计、数据计算智能、数据库系统概论、计算机系统基础、并行体系结构与编程、非结构化大数据分析。
选修课:数据科学算法导论、数据科学专题、数据科学实践、互联网实用开发技术、抽样技术、统计学习、回归分析、随机过程。
(8)大数据专业主要课程扩展阅读:
大数据岗位:
1、大数据系统架构师
大数据平台搭建、系统设计、基础设施。
技能:计算机体系结构、网络架构、编程范式、文件系统、分布并行处理等。
2、大数据系统分析师
面向实际行业领域,利用大数据技术进行数据安全生命周期管理、分析和应用。
技能:人工智能、机器学习、数理统计、矩阵计算、优化方法。
3、hadoop开发工程师。
解决大数据存储问题。
4、数据分析师
不同行业中,专门从事行业数据搜集、整理、分析,并依据数据做出行业研究、评估和预测的专业人员。在工作中通过运用工具,提取、分析、呈现数据,实现数据的商业意义。
5、数据挖掘工程师
做数据挖掘要从海量数据中发现规律,这就需要一定的数学知识,最基本的比如线性代数、高等代数、凸优化、概率论等。经常会用到的语言包括Python、Java、C或者C++,我自己用Python或者Java比较多。有时用MapRece写程序,再用Hadoop或者Hyp来处理数据,如果用Python的话会和Spark相结合。
9 大数据专业课程有哪些
首先我们要了解Java语言和Linux *** 作系统,这两个是学习大数据的基础,学习的顺序不分前后。
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据。基础
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapRece和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapRece是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
记住学到这里可以作为你学大数据的一个节点。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapRece程序。有的人说Pig那它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapRece、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的排队买票你知道不数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapRece处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以 *** 作它,因为它们都是用JVM的。
你可以在取票机开机后,一般有三种可能的情况。
1)排队系统的服务器软件安装在其他机器上,而服务器未接入网络,或者服务器软件未启动;这种情况下排队系统相关的设置软件、查询软件等等都会无法连接到服务器。
2)对应的服务器数据库未正常启动;
3)排队系统服务器软件也安装在取票机上,但是服务器软件未能优先启动,到时取号软件启动后找不到服务器。
你可以到前进者排队机论谈,面里关于银行排队取号的解决方案很齐全!
在MySQL 80 之前, 我们假设一下有一条烂SQL,
mysqlselect from t1 order by rand() ;
以多个线程在跑,导致CPU被跑满了,其他的请求只能被阻塞进不来。那这种情况怎么办?
大概有以下几种解决办法:
设置max_execution_time 来阻止太长的读SQL。那可能存在的问题是会把所有长SQL都给KILL 掉。有些必须要执行很长时间的也会被误杀。
自己写个脚本检测这类语句,比如order by rand(), 超过一定时间用Kill query thread_id 给杀掉。
那能不能不要杀掉而让他正常运行,但是又不影响其他的请求呢?
那mysql 80 引入的资源组(resource group,后面简写微RG)可以基本上解决这类问题。
比如我可以用 RG 来在SQL层面给他限制在特定的一个CPU核上,这样我就不管他,让他继续运行,如果有新的此类语句,让他排队好了。
为什么说基本呢?目前只能绑定CPU资源,其他的暂时不行。
那我来演示下如何使用RG。
创建一个资源组user_ytt 这里解释下各个参数的含义,
type = user 表示这是一个用户态线程,也就是前台的请求线程。如果type=system,表示后台线程,用来限制mysql自己的线程,比如Innodb purge thread,innodb read thread等等。
vcpu 代表cpu的逻辑核数,这里0-1代表前两个核被绑定到这个RG。可以用lscpu,top等列出自己的CPU相关信息。
thread_priority 设置优先级。user 级优先级设置大于0。
mysqlmysql> create resource group user_ytt type = user vcpu = 0-1 thread_priority=19 enable;Query OK, 0 rows affected (003 sec)
RG相关信息可以从 information_schemaresource_groups 系统表里检索。
mysqlmysql> select from information_schemaresource_groups;+---------------------+---------------------+------------------------+----------+-----------------+| RESOURCE_GROUP_NAME | RESOURCE_GROUP_TYPE | RESOURCE_GROUP_ENABLED | VCPU_IDS | THREAD_PRIORITY |+---------------------+---------------------+------------------------+----------+-----------------+| USR_default | USER | 1 | 0-3 | 0 || SYS_default | SYSTEM | 1 | 0-3 | 0 || user_ytt | USER | 1 | 0-1 | 19 |+---------------------+---------------------+------------------------+----------+-----------------+3 rows in set (000 sec)
我们来给语句select guid from t1 group by left(guid,8) order by rand() 赋予RG user_ytt。
mysql> show processlist;+-----+-----------------+-----------+------+---------+-------+------------------------+-----------------------------------------------------------+| Id | User | Host | db | Command | Time | State | Info |+-----+-----------------+-----------+------+---------+-------+------------------------+-----------------------------------------------------------+| 4 | event_scheduler | localhost | NULL | Daemon | 10179 | Waiting on empty queue | NULL || 240 | root | localhost | ytt | Query | 101 | Creating sort index | select guid from t1 group by left(guid,8) order by rand() || 245 | root | localhost | ytt | Query | 0 | starting | show processlist |+-----+-----------------+-----------+------+---------+-------+------------------------+-----------------------------------------------------------+3 rows in set (000 sec)
找到连接240对应的thread_id。
mysqlmysql> select thread_id from performance_schemathreads where processlist_id = 240;+-----------+| thread_id |+-----------+| 278 |+-----------+1 row in set (000 sec)
给这个线程278赋予RG user_ytt。没报错就算成功了。
mysqlmysql> set resource group user_ytt for 278;Query OK, 0 rows affected (000 sec)
当然这个是在运维层面来做的,我们也可以在开发层面结合 MYSQL HINT 来单独给这个语句赋予RG。比如:
mysqlmysql> select /+ resource_group(user_ytt) /guid from t1 group by left(guid,8) order by rand()8388602 rows in set (4 min 4609 sec)
RG的限制:
Linux 平台上需要开启 CAPSYSNICE 特性。比如我机器上用systemd 给mysql 服务加上
systemctl edit mysql@80 [Service]AmbientCapabilities=CAP_SYS_NICE
mysql 线程池开启后RG失效。
freebsd,solaris 平台thread_priority 失效。
目前只能绑定CPU,不能绑定其他资源。
={ E→G,G→E,F→(E,G),H→(E,G),
(F,H)→E}
(1)求出R的所有候选关键字;
(2)根据函数依赖关系,确定关系模式R属于第几范式;
(3)将R分解为3NF,并保持无损连接性和函数依赖保持性;
(4)求出F的最小函数依赖集。
参考答案:
(1)R的候选关键字为:(F,H)
(2)R为:1NF
(3)分解为:
(,)、(,)、(,)、(,{})
(4)最小函数依赖集为:
按定理43,求最小函数依赖集步骤:
F=
=
=
10、试问下列关系模式最高属于第几范式,并解释其原因。
(1)R(A,B,C,D),F=。
(2)R(A,B,C,D,E),F=。
(3)R(A,B,C,D),F=。
(4)R(A,B,C),F=。
(5)R(A,B,C),F=。
(6)R(A,B,C,D),F=。
(7)R(A,B,C,D),F=。
参考答案:
只依次写出候选关键字与范式等级(范式按定义判定,具体略)
(1)AB 1NF
(2)AB,E 2NF
(3)AB,AD 3NF
(4)A,B BCNF
(5)C 2NF
(6)AD 1NF
(7)AD 1NF
二、填空题
1、对数据库的保护一般包括 安全性 、 完整性 、 并发控制 和 数据恢复 四个方面的内容。
2、对数据库 安全 性的保护就是指要采取措施,防止库中数据被非法访问、修改,甚至恶意破坏。
3、安全性控制的一般方法有 用户标识和鉴别 、 用户存取权限控制 、 视图机制 、
数据加密 和 审计 五种。
4、用户鉴定机制包括 用户标识定义 和 用户身份验证 两个部分。
5、每个数据均需指明其数据类型和取值范围,这是数据 完整性 约束所必需的。
6、在SQL中, COMMIT 语句用于提交事务, ROLLBACK 语句用于回滚事务。
7、加锁对象的大小被称为加锁的 粒度 。
8、对死锁的处理主要有两类方法,一是 预防死锁的发生 ,二是 检测死锁发现后予以消除死锁 。
9、解除死锁最常用的方法是 撤消一些陷入死锁的事务 。
10、基于日志的恢复方法需要使用两种冗余数据,即 后备数据库 和 日志文件 。
三、简单题
1、简述数据库保护的主要内容。
对数据库的保护一般包括4个方面的内容,一是对数据库完整性的保护,即保证库中的数据是正确的和相容的,符合完整性约束条件的;二是对数据库安全性的保护,即防止库中数据被非法访问、修改,甚至恶意破坏;三是对并发的事务进行控制,保证数据库的一致性;四是在发生故障后,对数据库进行恢复,尽量减少故障造成的损失。
2、什么是数据库的安全性?简述DBMS提供的安全性控制功能包括哪些内容。
解:
(1)数据库的安全性是指保护数据库以防止非法使用所造成数据的泄露、更改或破坏。
(2)常采取的安全保护措施有用户鉴定、存取控制、视图保护、审计和数据加密等。
4、什么是数据库的完整性?DBMS提供哪些完整性规则,简述其内容。
(1)数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效 *** 作。
(2)DBMS提供实体完整性规则、参照完整性规则及用户自定义完整性规则
为保障数据库的完整性,数据库管理系统应提供完整性约束的定义机制和检查机制。
5、数据库的安全性保护和完整性保护有何主要区别
解:
数据库的完整性和安全性是数据库保护的两个不同的方面。
安全性是保护数据库,以防止非法使用所造成数据的泄露、更改或破坏,安全性措施的防范对象是非法用户和非法 *** 作;完整性是防止合法用户使用数据库时向数据库中加入不符合语义的数据,完整性措施的防范对象是不合语义的数据,即不正确的数据。
6、什么是事务?简述事务的ACID特性,事务的提交和回滚是什么意思?
解:
(1)事务是数据库系统中执行的一个工作单位,它是由用户定义的一组 *** 作序列组成。
一个事务可以是一组SQL语句、一条SQL语句或整个程序,一个应用程序可以包括多个事务。事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按照缺省规定自动划分事务。
(2)事务是由有限的数据库 *** 作序列组成,但并不是任意的数据库 *** 作序列都能成为事务,为了保护数据的完整性,一般要求事务具有以下四个特征:
1)原子性(Atomicity)2)一致性(Consistency)3)隔离性(Isolation)4)持久性(Durability)事务上述四个性质的英文术语的第一个字母分别为A、C、I、D。因此,这四个性质也称为事务的ACID准则。
(3)
COMMIT表示事务的提交,即将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,此时事务正常结束;
ROLLBACK表示事务的回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新 *** 作全部撤销,再回滚到事务开始时的状态。
7、数据库管理系统中为什么要有并发控制机制?
解:
每个用户在存取数据库中的数据时,可能是串行执行,即每个时刻只有一个用户程序运行,也可能是多个用户并行地存取数据库。数据库的最大特点之一就是数据资源是共享的,串行执行意味着一个用户在运行程序时,其他用户程序必须等到这个用户程序结束才能对数据库进行存取,这样数据库系统的利用率会极低。因此,为了充分利用数据库资源,很多时候数据库用户都是对数据库系统并行存取数据,但这样就会发生多个用户并发存取同一数据块的情况,如果对并发 *** 作不加控制可能会产生 *** 作冲突,破坏数据的完整性。即发生所谓的丢失更新、污读、不可重读等现象。
(2)实现并发控制的方法主要有两种:封锁(Lock)技术和时标(Timestamping)技术。
9、什么是封锁?封锁的基本类型有哪几种?含义是什么?
解:
(1)所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集、以至整个数据库)进行 *** 作之前,必须获得相应的锁,以保证数据 *** 作的正确性和一致性。
(2)基本的封锁类型有两种:排它锁和共享锁。
1)排它锁(Exclusive Lock):排它锁又称写锁,简称为X锁,其采用的原理是禁止并发 *** 作。当事务T对某个数据对象R实现X封锁后,其他事务要等T解除X封锁以后,才能对R进行封锁。这就保证了其他事务在T释放R上的锁之前,不能再对R进行 *** 作。
2)共享锁(Share Lock):共享锁又称读锁,,简称为S锁,其采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。当事务T对某个数据对象R实现S封锁后,其他事务只能对R加S锁,而不能加X锁,直到T释放R上的S锁。这就保证了其他事务在T释放R上的S锁之前,只能读取R,而不能再对R作任何修改。
11、什么是活锁?如何处理?
解:
(1)封锁技术可有效解决并行 *** 作引起的数据不一致性问题,但也可产生新的问题,即可能产生活锁和死锁问题。
活锁(Livelock):当某个事务请求对某一数据的排它性封锁时,由于其他事务一直优先得到对该数据的封锁与 *** 作而使这个事务一直处于等待状态,这种状态形成活锁。
(2)避免活锁的简单方法是采用先来先服务的策略,按照请求封锁的次序对事务排队,一旦记录上的锁释放,就使申请队列中的第一个事务获得锁。
12、什么是死锁?消除死锁的常用方法有哪些?请简述之。
(1)在同时处于等待状态的两个或多个事务中,每个事务都在等待其中另一个事务解除封锁,它才能继续执行下去,造成任何一个事务都无法继续执行,这种状态称为死锁。
(2)发生死锁的必要条件有以下四条:
①互斥条件②不可抢占条件③部分分配条件:④循环等待条件
①一次加锁法
一次加锁法是每个事物必须将所有要使用的数据对象全部依次加锁,并要求加锁成功,只要一个加锁不成功,表示本次加锁失败,则应该立即释放所有已加锁成功的数据对象,然后重新开始从头加锁。
②顺序加锁法
顺序加锁法是预先对所有可加锁的数据对象规定一个加锁顺序,每个事务都需要按此顺序加锁,在释放时,按逆序进行。
14、数据库运行过程中可能产生的故障有哪几类
(1)数据库运行过程中可能会出现各种各样的故障,这些故障可分为以下三类:事务故障、系统故障和介质故障。
16、什么是日志文件?为什么要在系统中建立日志文件?
解:
(1)日志文件是用来记录事务对数据库的更新 *** 作的文件。对数据库的每次修改,都将把被修改项目的旧值和新值写在一个叫做运行日志的文件中,目的是为数据库的恢复保留依据。
典型的日志文件主要包含以下内容:1)更新数据库的事务标识(标明是哪个事务);2) *** 作的类型(插入、删除或修改);3) *** 作对象;4)更新前数据的旧值(对于插入 *** 作而言,没有旧值);5)更新后数据的新值(对于删除 *** 作而言,没有新值);6)事务处理中的各个关键时刻(事务的开始、结束及其真正回写的时间)。
二、填空题
1、在设计分E-R图时,由于各个子系统分别面向不同的应用,所以各个分E-R图之间难免存在冲突,这些冲突主要包括 命名冲突 、 属性冲突 和 结构冲突 三类。
2、数据字典中的 数据项 是不可再分的数据单位。
3、若在两个局部E-R图中都有实体“零件”的“重量”属性,而所用重量单位分别为公斤和克,则称这两个E-R图存在 属性 冲突。
5、确定数据库的物理结构主要包括三方面内容,即: 确定数据存放位置和存储结构 、 确定数据存取方法 和 系统配置 。
6、将关系R中在属性A上具有相同值的元组集中存放在连续的物理块上,称为对关系R基于属性A进行 聚簇 。
7、数据库设计的重要特点之一要把 结构(数据) 设计和 行为(处理) 设计密切结合起来,并以 结构(数据) 为核心而展开。
8、数据库设计一般分为如下六个阶段: 需求分析 、 概念结构设计 、 逻辑结构设计 、数据库物理设计、数据库实施、数据库运行与维护。
9、概念设计的结果是得到一个与 计算机与DBMS 无关的模型。
10、在数据库设计中, 数据字典 是系统各类数据的描述的集合。
三、简答题
1、数据库设计分为哪几个了阶段?每个阶段的主要工作是什么?
解:
(1) 按照规范化的设计方法,以及数据库应用系统开发过程,数据库的设计过程可分为以下六个设计阶段需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库运行和维护。
(2) 以下是数据库设计六个步骤的具体内容:
1、需求分析阶段2、概念结构设计阶段3、逻辑结构设计阶段4、物理设计阶段
5、数据库实施阶段6、数据库运行与维护阶段
5、什么是E-R图?构成E-R图的基本要素是什么?
(1)E-R图即是实体-联系图,是信息世界概念模型的一种。
(2)E-R图提供了表示实体型、属性和联系的方法。
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆表示,椭圆形内写明属性名。并用无向边将其与相应的实体连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。
6、用E-R图表示概念模式有什么好处?
解:
概念模式是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象。将概念结构设计从设计过程中独立出来,可以带来以下好处:
(1) 任务相对单一化,设计复杂程度大大降低,便于管理。
(2) 概念模式不受具体的DBMS的限制,也独立于存储安排和效率方面的考虑,因此,更稳定。
(3) 概念模型不含具体DBMS所附加的技术细节,更容易被用户理解,因而更能准确的反映用户的信息需求。
8、一个图书馆理系统中有如下 信息:
图书:书号、书名、数量、位置
借书人:借书证号、姓名、单位
出版社:出版社名、邮编、地址、电话、E-mail
其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有惟一性。
根据以上情况,完成如下设计:
(1)设计系统的E-R图;
(2)将E-R图转换为关系模式;
(3)指出转换后的每个关系模式的关系键。
解:
(1)
(2)与(3)(带下划线的为主码)
借书人(借书证号,姓名,单位)
借阅(借书证号,书号,借书日期,还书日期)
图书(书号,书名,数量,位置)
出版(书号,出版社名)
出版社(出版社名,邮编,地址,电话,E-mail)
以上就是关于多程序同时 *** 作数据库是否会存在问题。全部的内容,包括:多程序同时 *** 作数据库是否会存在问题。、PHP 我要写个广告位,是客户花钱按天买的,最多十条,后来的排队,我想知道后来的我该怎么给他存开始时间、大数据专业主要课程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)