❶ 数据库表设计,表示行与表的关系,怎样设计结构
按第三范式的规则,应该是只存表ID,然后另建一张表,保存表ID与表名的对应关系。
当然,你要是在A表里只存表名,然后另建表保存表名与ID的关系也是可以的,也满足范式要求,只不过绝大多数人会选择保存ID。对于数据库来说,表名也是不重复,所以保存ID或名字都可以,但另外一些情况,比如学生选课表,学生名可能会有重复,而ID是不会重复的(除非数据错了),这也是为什么都保存ID的原因。
❷ 如何构建一个完善的数据库,如何来处理表与表关系.
SQL Server本身就是一个完善的数据库,提供可视化编程,后台完成所有拖放处理操作,不管有没有数据都可以使用,不需要编译。
一个比较合理的数据库设计应该考虑数据的交互性和挖掘能力、处理效率以及日志记录。
建立数据表,注意以下几点:
表建立的时候要有主键和索引,表与表之间要能使用主键相联系,举例说在A表里我做完一次记录要生成一个单号,B表里面是依据单号来做下一个流程,而不是依据记录的每一条数据
取名尽量使用英文+下划线,SQL Server里对汉字需要转码,影响工作效率,按照他的默认编码方式操作有助于提高数据处理速度
建立数据表的列数不要太多,用编码规则来建立逻辑
注意字段存储空间,限制字段长度,少用注释和image
存储过程尽量简洁实用
建立视图,为了别的客户端使用,尽量建立视图,做好完整的数据分析,别的接口程序或者客户端直接就可以拿去使用。做视图注意几点:
多个表操作写在一个视图里,不要嵌套太多视图
连接查询要适当的筛选
跨服务器操作视图,要建立服务器链接表,尽量使用内网链接,把服务器链接表做成查询视图,放在本地服务器数据库里,这样就等同本地操作
视图之间保留连接字段作为主要索引
建立计划作业,有计划地进行数据同步更新和备份标识工作,注意事项:
备份数据尽量放数据库里同步复制
计划任务避开工作高峰期
建立存储过程,记录操作日志,把日志以数据表的形式存储,注意事项:
存储过程对本表操作,不要交互太多表
精简参数数量,注意参数存储空间
对记录修改删除、更新标记的时候尽量使用时间来索引
建立关系图,给表与表之间建立直接关系,整理整体挖掘数据性能。
建立计划更新任务,优化数据库整体性能。
❸ 映射数据库表什么意思
sql数据库用户映射是什么意思,有什么作用。
好像是用户名和登录名之间的联系,用来设置登录名权限的
数据库表映射问题
select * into B.dbo.a from A.dbo.a
就把表同步过去
如果只同步表结构
select * into B.dbo.a from A.dbo.a where 1<>1
如何:将实体映射到数据库表
是通过映射文件来映射的。举个简单的例子,例如我有个Teacher实体类(某教学管理系统老师用户):
private Integer id;编号
private String name;姓名
private String password;密码
private Date createDate;创建日期
同时,我创建了数据表TEACHER:
create table teacher( id number(9) primary key,--编号 name varchar2(20),--姓名 password varchar2(20),--密码 create_date date--创建日期);
这时,怎么关联它们呢?通过加载hibernate框架,我们就可以使用映射文件来关联实体类和数据库了
文件名:Teacher.hbm.xml(必须与实体类名字一致)
内容:
>
(SQL Server 导入和导出向导)里面,编辑映射和列映射什么意思?干嘛用的? 10分
这个就是讲,要做一个对应.
比方讲你要导入一个表.那假如你想把列1的内容导入到列2里面,你就需要告诉数据库你的这个需求.
此时,便需要添加一个列的映射.
希望对你有所帮助哈~~
SQLSERVER2000里怎么将一个数据库里的表映射到另一数据库
可以在需要被映射的服务器上,添加一个 连接服务器。
这样可以直接通过连接服务器访问你需要的数据表。
如何将含有继承关系的类图映射为关系数据库
库。 通常使用以下两种方法来映射继承关系: 1)将基类映射到一张表,每个子类映射到一张表。在基类对应的表中定义主键,而在 子类对应的表中定义外键。 2)将每个子类映射到一张表,没有基类表。在每个子类的表中包括基类的所有属性。 这种方法适用于子类的个数不多,基类属性比较少的情况。
POJO怎么映射成数据库的表?
用hibernate框架pojo里用hibernate注解 例如:package .ayumi.pojo;
import java.io.Serializable;
import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;
import org.hibernate.validator.NotNull;
@Entity 实体对象@Table(name="users") 表名public class Users implements Serializable {private Integer id;private String username;private String password;@Id 主键@Column(name="id") 列名public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Column(name="username",length=20) 列名 及 长度设定@NotNull 非空设定public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Column(name="password",length=20) 列名 及 长度设定public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
这样就对表的字段定义好了然后编写main方法测试类public static void main(String[] args) {Configuration cfg=new AnnotationConfiguration().configure();SchemaExport eport=new SchemaExport(cfg);eport.create(true, true);}
执行,这样就会在hibernate.cfg.xml里配置好的相应连接中对应的数据库下创建成功数据库表
java中的映射是什么意思
简单的说就是把一个数据库表里的字段和一个java类里的属性对应起来,让程序知道这个java类里的这个属性应该是数据库哪个表里的哪个字段。
hibernate是通过什么标签实现实体类和表的映射的
10.1 实体类的映射
从Java的角度讲,实体类就是普通的Java封装类(有人称为POJO有人称为VO)。仅从实体类中的代码信息,Hibernate并不能得知该实体类对应哪个数据表,因此还需要以某种方式配置一下。常用的方式有*.hbm.xml文件配置与@注解配置两种。
hbm.xml文件就是普通的xml文件,hbm为Hibernate Mapping的缩写,这样从文件名上就能判断该文件为Hibernate实体类配置文件。在JPA出现之前,Hibernate都使用hbm.xml文件配置。JPA出现后,推荐使用JPA的@注解配置,因为对于所有的ORM框架,@注解都是通用的。
10.1.1 使用@注解配置实体类
实体类一般有ID、普通属性、 *** 属性等,分别对应数据库的主键、普通列、外键。@注解配置中,实体类用@Entity注解,用@Table指定对应的数据表,用@Id配置主键,用@Column配置普通属性,用@OneToMany、@ManyToOne、@OneToOne、@ManyToMany配置实体间关系等。实体类之间的关于在后面的章节中会做详细介绍。下面编写一个UsersVo类,在该类中使用@注解配置实体类的映射,UsersVo类的代码如下:
package .vo;
import javax.persistence.*;
@Entity 注解Entity表示该类纳入Hibernate管理,能够被持久化
@Table(name = "users") 指定该实体类对应的数据库表名
public class UsersVo {
Fields
@Id 指定该列为主键。
这个注解用来表示主键类型, auto为数据库自增长类型
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "name") 指定变量对应的数据库表的列为"name"
private String name;
@Column(name = "age")指定变量对应的数据库表的列为"age"
private int age;
@Column(name = "tel")指定变量对应的数据库表的列为"tel"
private String tel;
@Column(name = "address")指定变量对应的数据库表的列为"address"
private String address;
Constructors
public UsersVo() {
}
public UsersVo(int id) {
this.id = id;
}
public UsersVo(int id, String name, int age, String tel,
String address) {
this.id = id;
this.name = name;
this.age = age;
this.tel = tel;
this.address = address......>>
❹ 数据库的数据关系用什么表示什么
关系模式是静态的,比如我们看到的一张二维表的表头,即有哪些列构成,每个列的名称,类型啊长度等等; 关系是动态的,就是一张二维表的具体内容,就是除了标题行以外的数据行,因为表数据经常被修改,插入,删除,所以不同时刻,关系可能不一样...
❺ 如何将含有继承关系的类图映射为关系数据库
库。 通常使用以下两种方法来映射继承关系: 1)将基类映射到一张表,每个子类映射到一张表。在基类对应的表中定义主键,而在 子类对应的表中定义外键。 2)将每个子类映射到一张表,没有基类表。在每个子类的表中包括基类的所有属性。 这种方法适用于子类的个数不多,基类属性比较少的情况。
❻ 数据库管理系统一个完整的表必须用那几个来表示数据的关系
数据库管理系统一个完整的表必须用记录和字段来表示数据的关系。
表中的内每一行叫容做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。
字段是比记录更小的单位,字段集合组成记录,每个字段描述文献的某一特征,即数据项,并有唯一的供计算机识别的字段标识符。
(6)数据库表继承关系如何表示扩展阅读
数据库表中字段类型有以下几种:
1、二进制数据类型:包括Binary、Varbinary、Image。
2、字符数据类型:包括Char,Varchar、Text。
3、Unicode数据类型:包括Nchar、Nvarchar、Ntext。
4、日期和时间数据类型:包括Datetime、Smalldatetime、Date、TimeStamp。
5、数字数据类型:包括正数和负数、小数和整数。
6、货币数据类型:表示正的或者负的货币数量。
7、特殊数据类型:包括Timestamp、Bit、Uniqueidentifier。
❼ 如何在数据库中表示多对多的关系
多对多:新建一个关系表,将两张表关系起来。关系表中是两张表版的主键。
如:有多个学生,权每个学生可以选修多门课程,每个课程可以被多个学生选修。
注意:多对多中,不能说在一个表中加个字段,cid是另一张表的主键,不能写两个数据。
(7)数据库表继承关系如何表示扩展阅读
一个好的表结构设计,可以减少一些不必要的表或字段等。数据表之间的关联关系分为三种:一对一、一对多、多对多。
1、一对一,是将数据表“垂直切分”,就是A表的一条记录对应B表的一条记录。
优点:
(1)便于管理、可提高一定的查询速度。
(2)减轻CPU的IO读写,提高存取效率。
(3)符合数据库设计的三大范式。
(4)符合关系性数据库的特性。
缺点:增加一定的复杂程度,程序中的读写难度加大。
2、一对多,就是A表的一条记录,对应B表的多条记录,且A的主键作为B表的外键。
❽ 数据库的关系代数表达式
数据库的关系代数表达式是由关系代数运算经有限次复合而成的式子。
在关系代数运算中,把由并(∪)、差(-)、笛卡尔积(×)、投影(π)、选择(σ)五个基本操作经过有限次复合的式子称为关系代数表达式。关系代数表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的各种数据查询和更新操作。
关系代数表达式用到的运算符包括集合运算符、专门的关系运算符、算术比较符和逻辑运算符。和交(∩)、联接(等值联接)、自然联接(RXS)、除法(÷) 四个组合操作。
(8)数据库表继承关系如何表示扩展阅读:
关系代数表达式的运算过程是将关系的属性分为像集属性和结果属性两部分;与关系相同的属性属于像集属性;不相同的属性属于结果属性。在关系中,对像集属性投影,得到目标数据集。将被关系分组。
分组原则是结果属性值一样的元组分为一组。逐一考察每个组,如果它的像集属性值中包括目标数据集,则对应的结果属性应属于该运算结果集。
❾ powerdesigner的类图怎么设置继承关系
在使用PowerDesigner设计RDBMS数据库的时候,发现其中的子类貌似与课程老师所讲的不太一样,查资料发现,关于继承就有三种实现方式。
Concrete Table Inheritance(具体表继承)
Single Table Inheritance(单表继承)
Class Table Inheritance(类表继承)
❿ 数据库中包含关系怎么表示
用模糊查询可以实现包含关系,
%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示,例如Select*from表Wherestrlike'%陈%'