精华内容
下载资源
问答
  • mysql主主关系配置

    千次阅读 2014-02-19 21:26:17
    mysql支持主主关系,是通过同步bin-log来实现数据同步,如mysqlA与mysqlB是主主关系,mysqlA的数据是通过同步mysqlA的bin-log来将数据同步到mysqlB,相反mysqlB的数据是通过同步mysqlB的bin-log来将数据同步到mysqlA...

          mysql支持主主关系,是通过同步bin-log来实现数据同步,如mysqlA与mysqlB是主主关系,mysqlA的数据是通过同步mysqlA的bin-log来将数据同步到mysqlB,相反mysqlB的数据是通过同步mysqlB的bin-log来将数据同步到mysqlA。根据这一原理,如果双写mysqlA和mysqlB,可能产生数据冲突而造成数据不一致,因此在使用时需要避免双写造成的数据冲突问题。

          对bin-log的了解可参照下面链接:

          http://www.doc88.com/p-337769944580.html

          好了,下面进行配置mysql主主关系。

          例如有mysqlA(192.168.1.100)和mysqlB(192.168.1.101),需将它们配置主主关系。可以将一过程分解为两个子过程:(1)将mysqlA配成mysqlB的从库;(2)将mysqlB配成mysqlA的从库。可见,过程(2)是过程(1)的逆过程。

    一、mysqlA配成mysqlB的从库

    (1)登陆mysqlB(192.168.1.101)

    (2)首先创建一个mysql账号作为同步用,然后赋与同步权限;

    mysql>INSERT INTO mysql.user(Host,User,Password) VALUES("localhost","user_00",password("1234"));

    mysql>GRANT REPLICATION SLAVE ON *.* TO 'user_00'@192.168.1.100 IDENTIFIED BY '1234'

    mysql>FLUSH PRIVILEGES;

    (3)编辑mysql的配置文件my.cnf(一般位置是/etc/my.cnf),添加下面项

    log-bin=bin-log # 打开binlog

    server-id = 1  # 标识mysqlB

    auto_increment_increment = 2 

    auto_increment_offset = 1 
    binlog-do-db=discuz   # 需要同步的DB
    binlog-ignore-db=mysql  # 不需要同步的DB
    slave-skip-errors=all  # 跳过错误,继续执行复制

        上面其中auto_increment_increment = 2和auto_increment_offset = 1用于解决主主模式时自增加字段的数据冲突,它表示auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID。

    (4)重启mysqlB

    #sudo service mysql restart

    (5)查看master status

    mysql>show master status;

    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000003 |      106 | discuz |                  |
    +------------------+----------+--------------+------------------+

    (6)登陆mysqlA(192.168.1.100)

    (7)编辑mysqlA的配置文件my.cnf,添加下面项

    server-id = 2 #标识mysqlA
    auto_increment_increment = 2 
    auto_increment_offset = 2 
    replicate-ignore-db=mysql  
    replicate-do-db=discuz 

    (8)重启mysqlA

    #sudo service mysql restart

    (9)从机mysqlA指定需要同步的主机mysqlB位置和binlog位置(该信息由步骤(5)提供)

    mysql>slave stop;

    mysql>change  master to master_host='192.168.1.101', master_user='user_00',   master_password='1234', master_port=3366, master_log_file='mysql-bin.000003', master_log_pos=106;

    mysql>slave start;

    (10)查看slave的同步状态

    mysql>show slave status;

     如果显示信息中 Slave_IO_Running: Yes  Slave_SQL_Running: Yes,都为Yes,则说明mysqlA成功为mysqlB的从库,即主从关系建立。


    二、mysqlB配成mysqlA的从库

         此过程是过程一的逆过程。因此将上面的过程里的mysqlA和mysqlB对换一下操作,并略改下(3)、(7)(9)步骤:

      (3)改为:只添加下面项

    log-bin=bin-log # 打开binlog

    binlog-do-db=discuz   # 需要同步的DB
    binlog-ignore-db=mysql  # 不需要同步的DB
    slave-skip-errors=all  # 跳过错误,继续执行复制

    (7)改为:只添加下面项

    replicate-ignore-db=mysql  
    replicate-do-db=discuz 

    (9)改为:(其中master_log_file和master_log_pos由步骤(5)显示的信息提供)

    mysql>slave stop;

    mysql>change  master to master_host='192.168.1.100', master_user='user_00',   master_password='1234', master_log_file='mysql-bin.000003', master_log_pos=106;

    mysql>slave start;


    最后查看slave状态,此时slave是mysqlB,即在mysqlB是输入如下命令:

    mysql>show slave status;

     同样如果显示信息中 Slave_IO_Running: Yes  Slave_SQL_Running: Yes,都为Yes,则说明mysqlB成功为mysqlA的从库,即主从关系建立。


    至此,mysqlA和mysqlB的主主关系建立完成。它们互相同步的DB是discuz。

    展开全文
  • 在SQL Server中,如果建立了表和子表的关系,则以下情况描述错误的是( )。 1 A:子表中相关项目的数据在表中必须存在 B:先删除子表才能删除表 C:若表中相关项的数据更改了,则子表对应的数据项也应当随之...
  • 数据库主从表关系外键关系

    千次阅读 2017-07-24 11:47:38
    数据库是数据库的备份,当数据库变化时数据库要更新,这些数据库软件可以设计更新周期。这是提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存。 外键的关系结构: ...

    数据库主从表、关系;主、外键关系和作用(转)

    从数据库是主数据库的备份,当主数据库变化时从数据库要更新,这些数据库软件可以设计更新周期。这是提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存。
    主外键的关系结构:
    1,一对一,不用引用主外键,把它们放一个表中即可
    例如:一个学生只能有一个卡号,那么学生跟卡号放在一个表中即可
    2,一对多,引用主外键,‘一’相当于主键,‘多’即是引用主键的外键。
    例如:一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;
    3,多对多关系,需要创建一个表,表中需要两个字段,分别是引用,两个多对多字段主键的外键。
         例如:
    学生表(学号,姓名,…………)主键:学号
    课程表(课程号,课程名,…………)主键:课程号
    一个学生能选多门课,一个课可以由多个学生选,即是多对多关系,
    那么成绩表就是它们之间关系的体,
    即引用成绩表(学号,课程号,成绩)。这里学号和课程号,分别是学生表和课程表中学号和课程号的外键
    在我们现在这个阶段中,主要还是使用,主外键间的一对多的关系
    主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。
    外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。
    外键的作用:
    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!


    一、什么是主键、外键 
    关系型数据库中的一条记录中有若干个属性若其中某一个属性组(注意是
    组)能唯一标识一条记录该属性组就可以成为一个主键 
    比如 
    学生表(学号姓名性别班级) 
    其中每个学生的学号是唯一的学号就是一个主键 
    课程表(课程编号,课程名,学分) 
    其中课程编号是唯一的,课程编号就是一个主键 
    成绩表(学号,课程号,成绩) 
    成绩表中单一一个属性无法唯一标识一条记录学号和课程号的组合才可
    以唯一标识一条记录所以学号和课程号的属性组是一个主键 
    成绩表中的学号不是成绩表的主键但它和学生表中的学号相对应并且
    学生表中的学号是学生表的主键则称成绩表中的学号是学生表的外键 
    同理成绩表中的课程号是课程表的外键 
    定义主键和外键主要是为了维护关系数据库的完整性总结一下 
    1.主键是能确定一条记录的唯一标识比如一条记录包括身份正号姓
    名年龄。 
    身份证号是唯一能确定你这个人的其他都可能有重复所以身份证号
    是主键。 
    2.外键用于与另一张表的关联。是能确定另一张表记录的字段用于保持
    数据的一致性。 
    比如A表中的一个字段是B表的主键那他就可以是A表的外键。 

    二、主键、外键和索引的区别 
    主键、外键和索引的区别? 
    主键外键索引 
    定义唯一标识一条记录不能有重复的不允许为空表的外键是另一表
    的主键,外键可以有重复的,可以是空值该字段没有重复值但可以有一个空值 
    作用用来保证数据完整性用来和其他表建立联系用的是提高查询排序的
    速度 
    个数主键只能有一个一个表可以有多个外键一个表可以有多个惟一索引 
    聚集索引和非聚集索引的区别? 
    聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。 
    聚集索引在索引页里直接存放数据而非聚集索引在索引页里存放的是
    索引这些索引指向专门的数据页的数据。 

    三、数据库中主键和外键的设计原则 
    主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外
    键的设计对物理数据库的性能和可用性都有着决定性的影响。 
    必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和
    外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环
    境就很难对这些键进行修改所以在开发阶段就设计好主键和外键就是非常
    必要和值得的。 

    主键 
    系数据库依赖于主键---它是数据库物理模式的基石。 
    主键在物理层面上只有两个用途 
    1.惟一地标识一行。 
    2.作为一个可以被外键有效引用的对象。 
    基于以上这两个用途下面给出了我在设计物理层面的主键时所遵循的一
    些原则 
    1.主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的
    连接表中的数据并抱怨它没有什么用处那就证明它的主键设计地很好。 
    2.主键应该是单列的以便提高连接和筛选操作的效率。 
    注使用复合键的人通常有两个理由为自己开脱而这两个理由都是错误
    的。其一是主键应当具有实际意义然而让主键具有意义只不过是给人为地
    破坏数据库提供了方便。其二是利用这种方法可以在描述多对多关系的连接表
    中使用两个外部键来作为主键我也反对这种做法理由是复合主键常常导
    致不良的外键即当连接表成为另一个从表的主表而依据上面的第二种方法
    成为这个表主键的一部分然这个表又有可能再成为其它从表的主表其主
    键又有可能成了其它从表主键的一部分如此传递下去越靠后的从表其主
    键将会包含越多的列了。 
    3.永远也不要更新主键。实际上因为主键除了惟一地标识一行之外再
    没有其他的用途了所以也就没有理由去对它更新。如果主键需要更新则说
    明主键应对用户无意义的原则被违反了。 
    注这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整
    理的数据并不适用。 
    4.主键不应包含动态变化的数据如时间戳、创建时间列、修改时间列等。 
    5.主键应当有计算机自动生成。如果由人来对主键的创建进行干预就会
    使它带有除了惟一标识一行以外的意义。一旦越过这个界限就可能产生认为
    修改主键的动机这样这种系统用来链接记录行、管理记录行的关键手段就
    会落入不了解数据库设计的人的手中。 

    四、数据库主键选取策略 
    我们在建立数据库的时候需要为每张表指定一个主键所谓主键就是能
    够唯一标识表中某一行的属性或属性组一个表只能有一个主键但可以有多
    个候选索引。因为主键可以唯一标识某一行记录所以可以确保执行数据更新、
    删除的时候不会出现张冠李戴的错误。当然其它字段可以辅助我们在执行这
    些操作时消除共享冲突不过就不在这里讨论了。主键除了上述作用外常常
    与外键构成参照完整性约束防止出现数据不一致。所以数据库在设计时主
    键起到了很重要的作用。 

    常见的数据库主键选取方式有 
    ·自动增长字段

     很多数据库设计者喜欢使用自动增长型字段因为它使用简单。自动增长
    型字段允许我们在向数据库添加数据时不考虑主键的取值记录插入后数
    据库系统会自动为其分配一个值确保绝对不会出现重复。如果使用SQL 
    Server数据库的话我们还可以在记录插入后使用@IDENTITY全局变量获取系
    统分配的主键键值。

    ·手动增长字段 
    ·UniqueIdentifier 
    ·"COMB(Combine)"类型 

    展开全文
  • 定义:多个候选键中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字)。 主属性和非主属性 主属性:包含在主码中的各个属性称为主属性 非主属性:不包含在...

    关系的候选码、主码、外码

    候选码

    定义:能惟一标识关系中元组的一个属性或属性集,称为候选码(Candidate Key)
    在这里插入图片描述
    “学生关系”中的学号能惟一标识每一个学生
    “选课关系”中,只有属性的组合“学号+课程号”才能惟一地区分每一条选课记录

    主码

    定义:从多个候选键中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字)。

    主属性和非主属性

    主属性:包含在主码中的各个属性称为主属性
    非主属性:不包含在任何候选码中的属性称为非主属性(或非码属性)
    全码 :所有属性的组合是关系的候选码
    超码:包含候选码的属性集合。
    在这里插入图片描述

    外码

    定义:如果关系R2的一个或一组属性X不是R2的主码,而是另一个关系R1的主码,则该属性或属性组X称为关系R2的外部关键键或外码(Foreign Key),并称R2为参照关系(Referencing Relation),关系R1称为被参照关系(Referenced Relation)。
    被参照关系的主码和参照关系的外码必须定义在同一个域上
    在这里插入图片描述

    关系的完整性

    为了维护关系数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这些约束条件实际上是现实世界的要求。任何关系在任何时刻都要满足这些语义约束。
    在这里插入图片描述

    实体完整性

    实体完整性是指主码的值不能为空或部分为空。
    在这里插入图片描述
    在这里插入图片描述

    参照完整性

    如果关系R2的外码X与关系R1的主码相符, 则X的每个值或者等于R1中主码的某一个值或者取空值。

    学生关系S的“系别”属性与系别关系D的主码“系别”相对应,因此,学生关系S的“系别”属性是该关系S的外码,学生关系S是参照关系,系别关系D是被参照关系。
    在这里插入图片描述

    用户自定义完整性

    用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
    在这里插入图片描述
    关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。

    总结

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 码:所有候选码中选择一个,作为码。例如:学生关系(学号,身份证号,姓名,院系,专业,性别 ,生日),有两个候选码:【学号】和【身份证号】,我们可以选择学号为码,也可以选择身份证号为码(当然,...

    候选码:关系中的一个属性或者属性组,能够唯一标识一个元组,且它的真子集不能唯一标识元组。

    主码:从所有候选码中选择一个,作为主码。例如:学生关系(学号,身份证号,姓名,院系,专业,性别 ,生日),有两个候选码:【学号】和【身份证号】,我们可以选择学号为主码,也可以选择身份证号为主码(当然,一般还是选择学号为主码)。

    属性:上例中:学号、身份证号、姓名。。。都是学生的属性。

    主属性:候选码的中的一个属性。上例中的学号、身份证号都可以称为主属性。选课(学号,课程号),此关系的候选码只有一个,为:【学号、课程号】,故主属性有:学号、课程号。

    碰到更多再进行补充,如有错误,请多多指正,_

    展开全文
  • 数据库之关系数据库之超码,候选码,码,属性,非属性(非码元素)之间的关系 超码(Super Key): 在关系模型中能唯一标识一个元组的属性集称为关系模式的超码。 候选码(Candidate Key): 不含多余属性的...
  • 外键:外键是相对于数据库设计中的参考完整性而言,它与主键之间是彼此依赖的关系。假设现在有两个表,产品分类表ProductCategory(主键c_id)和产品表Product(主键p_id),每类产品都属于一个分类。那么如...
  • (只是一般情况都比较正常:即要关联肯定就是有外键关系的,所以看上去是数据库建立了外键关系,hibernate才正常关联,其实不是这样的,不管数据库是否设置了外键引用,hibernate都可以配置正确的关联关系。...
  • 如何查看MySQL数据库外键关系

    千次阅读 2019-08-23 16:45:51
    查看所有的外键关系,例如有一张表为:role,输入以下命令 SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME='role'
  • 关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何、子集都不能再...简单的说,候选码(超级码)就是可以被选为码的属性或属性组。当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候...
  • 定义:多个候选码中选择一个作为查询、插入、删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字) 每个关系必定有且只有一个主码,选择后不能重复。 关系的主属性 主属性(Prime At....
  • 关系模式和范式判断、候选码码(笔记)

    万次阅读 多人点赞 2019-05-27 18:32:39
    第一范式是关系模式的基本要求。 第二范式(2NF):在满足第一范式的前提下,非属性非部分依赖于关键字。要求实体的属性完全依赖于关键字。所谓完全依赖是指不能存在仅依赖关键字一部分的属性。 第三范式...
  • 利用Repeater控件显示从关系数据表

    万次阅读 热门讨论 2004-06-27 12:29:00
    本文介绍了一种利用Repeater控件显示从关系数据表的方法。 原文参见:http://support.microsoft.com/default.aspx?scid=kb;en-us;306154 NestedRepeater.aspx AutoEventWireup="false" Inherits="eMeng....
  • (1)我们在进行SSH开发大※的项目的时候,使用myeclipse自带的hibernate的逆向工程工具时,发现竟然无法生成one-to-one one-to-many等的外键关系,明明的数据库建时已经有外键关系了.为啥逆向生成时就不行了呢?...
  • 数据库中外键的关系

    千次阅读 2013-01-27 14:15:13
    在做机房收费系统时,考虑到了外键,所以学习了一下,下面我们一起来探究一下它们的关系。    主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一...
  • mysql中如何建立外键关系

    千次阅读 2016-08-23 14:42:33
    外键表中的外键必须为主键,表的DID和表的ID属性至少能相互转换, 删除时最好选择no action,选择set null很可能会报错,更多请参考下面的链接 http://www.th7.cn/db/mysql/201308/33641.shtml
  • JVM内存和工作内存的关系

    千次阅读 2017-06-27 21:23:50
    java线程内存分析 ... ...线程、工作内存、内存三者之间的交互关系图:   key edeas 所有线程共享内存 每个线程有自己的工作内存 refreshing local memory to/from main
  • 今天简单列举一下MM物料数据相关的表间关系
  • 数据库:码 属性 候选码 码的关系 定义 码 唯一标识实体的属性集称为码。例如学号是学生实体的码 属性 实体所具有的某一特性称为属性 候选码 设K为R<U,F>中的属性或属性组合,若K→U,则K为R的候选码 ...
  • sql语句中的外键关系

    千次阅读 2017-03-23 19:21:36
     如上定义了外键后,两个表间的关系就是一对多的关系了,并且学生表内的classid必须依托班级表的classid存在,也就是说外键必须要主键存在的时候才能创建,   例如:   --在班级表为空...
  • SELECT tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_name AS foreign_table_name, ccu.column_name AS foreign_column_name, tc.is_deferrable,tc.initially_deferred ...
  • EF之Code First设置外键关系(三)

    千次阅读 2017-06-09 14:46:53
    1、前言前两篇博文说的外键关系都是一对一的外键关系,下面我们来说另外一种情况,一个主类中包含多个外键关键,基本代码如下。 public class B { [Key] public int Id { get; set; } public string Name { ...
  • 有主从表关系的两张表 ... --删除数据如果当前的表作为表存在,需要考虑当前要删除的数据是否有被表引用,如果有 3 中解决方式 -- 默认先删除表中引用了数据,删除表的这个数据 -- on delete set null ...
  • 表B创建了外码userId 对应A的码ID,声明了级联删除  测试数据:  insert a values ('11','aaa')  insert a values('23','aaa')  insert b values('da','11')  insert b values('das','11')  ...
  • 要修改先删除外键和和主键...1、删除外键关系    alter table 表名 drop constraint 关系名;   2、执行以下语句报"要修改数据类型,则要更改的列必须为空"  alter table 表名 modify (目标字段 varchar2(100));
  • 外键关系可以关联两个或多个表,进行查询,但是,我也可以使用where tableName1.column1=tableName2.column2;来查询,差别不大,这个逻辑怎么理解?我是这么理解的,你是个男的,你要找一个女人生孩子,你可以找...
  • 【mysql】mysql中外键关系(详细精讲) 作者:yjqyyjw 一、外键: 1、什么是外键 2、外键语法 3、外键的条件 4、添加外键 5、删除外键 1、什么是外键: 主键:是唯一标识一条记录,不能有重复...
  • Oracle 查询所有表之间的外键关系

    千次阅读 2014-10-03 17:44:19
    select a.table_name 表,   b.table_name 子表,   column_name 键,   substr(position,1,1) P  from   user_constraints a, user_constraints b, user_cons_colu
  • 关系的码与关系的完整性关系的码1. 候选码2. 码3. 外码关系的完整性总结 关系的码 1. 候选码 候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键 ...码是候选键中选着一个作为查询、
  • EF之Code First设置外键关系(一)

    万次阅读 2017-06-09 14:23:01
    指定类外键有注释(DataAnnotation)和FluentAPI两种方式,下面我们主要使用DataAnnotation指定外键关系 第一种方式//1-指定导航属性,会自动生成外键,命名规则为:“对象名称_主键名” public class TUsers { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,020,014
精华内容 408,005
关键字:

从主关系