数据库E-R图相关 2014年6月15日 17:39 E-R数据模型所采用的三个主要概念是:实体集、联系集和属性 实体集:具有相同类型及相同性质(或属性)的实体集合 属性:简单属性和符合属性;单值属性和多值属性;null属性;派生属性 联系集:联系是多个实体间的相互关联
数据库E-R图相关
2014年6月15日
17:39
E-R数据模型所采用的三个主要概念是:实体集、联系集和属性
实体集:具有相同类型及相同性质(或属性)的实体集合
属性:简单属性和符合属性;单值属性和多值属性;null属性;派生属性
联系集:联系是多个实体间的相互关联。联系集是同类联系的集合。
eg:如果E1,E2,…,En为n个实体集,那么联系集R是{(e1,e2,…,en)|e1属于E1,e2属于E2,…en属于En}的一个子集,而(e1,e2,…,en)是一个联系。
屏幕剪辑的捕获时间:2014/6/15 18:14
码:给定实体集中的实体或给定联系集中的联系如何相互区别
实体集:
超码:一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一地标识一个实体。(可能有冗余属性)
候选码:最小超码(该超码的任意真子集都不能成为超码)就是候选码。候选码可以有多个。
主码:被数据设计者选中的,用来在同一实体集中区分不同实体的候选码。
实体集中的任意两个实体都不允许同时在码属性上具有相同的值。
联系集:(超码,主码与联系集的属性无关)
超码:各个实体的主码的并集就是联系集的超码。
主码:依赖于联系集映射的基数(一对多等)。对于多对多情况,由两张表的主码共同组成;对于一对多的情况,由多的一方的主码组成;对于一对一情况,其中任何一张表的主码均可以做联系集的主码。
映射的基数:一对一;一对多;多对一;多对多
A和B是实体集
一对一:A中的一个实体至多同B中的一个实体相联系,B中的一个实体也至多同A中的一个实体
一对多:A中的一个实体可以同B中的任意数目的实体相联系,B中的一个实体至多同A中的一个实体相联系
多对多:A中的一个实体可以同B中任意数目的实体相联系,B中的一个实体也可以同A中任意数目的实体相联系。
联系也可能具有描述性属性,区别于联系包含的实体的属性
用实体集还是用属性:主要区别依赖于被建模的现实世界事实的结构,以及所讨论的属性的相关语义
用实体集还是用联系集:当描述发生在实体间的行为时采用联系集。这一方法在决定将某些属性表述为联系时是否会更确切时也很有用
联系的基数比例可能影响联系属性所处的位置。一对一或一对多联系集的属性可以放到参与的实体集之中,而不是放到联系集中。一对多联系的属性可以放到联系中“多”的一方的实体集中,而对一对一的联系集而言,联系的属性可以放到参与联系的任何一个实体集中。
具体设计时将描述性属性作为联系的属性还是实体的属性这一决定应该反映所模拟的事实的特点。设计者可以选择保留access-date作为depositor的属性,用以显示地表明访问发生在实体集customer和account的交互点上。
多对多的情况下,当一个属性是由参与的实体集联合确定而不是由单独的某个实体集确定时,该属性就必须放到多对多联系集中。
依赖、全部参与、部分参与
存在依赖:贷款与还款,一条贷款数据可能对应多条还款数据,还款依赖于贷款。
全部参与:实体全部参与到某个联系集中。还款数据实体全部参与到“贷款还款”关系中,所有还款都与某个贷款有联系。
部分参与:实体部分参与到某个联系集中。客户数据实体部分参与到“客户贷款”关系中,不是所有客户都有贷款。
E-R图:可以表示数据库的全局逻辑结构,简单、清晰
矩形:实体集。
椭圆:属性。
菱形:联系集。
线段:将属性连接到实体集或将实体连接到联系集。
双椭圆:表示多值属性。
虚椭圆:表示派生属性。
双线:表示一个实体全部参与到联系集中。
没箭头的直线:多对多
有箭头的直线:箭头指向1的一边
派生属性:在数据库中,一个实体包含多个属性,那么可以从其他属性中得来的属性就叫做派生属性。例如:“学生”实体中有“生日”和“年龄”等属性,从“生日”可以计算出“年龄”属性的值,“年龄”属性就是派生属性。
多值属性:例如员工的亲戚,可以有多个。设计数据库表的时候要单独起一张表。
屏幕剪辑的捕获时间:2014/6/18 19:30
主码包含的属性以下划线表明。
弱实体集:实体集的属性都不足以形成主码,这样的实体集称作弱实体集。
弱实体集用双边框的矩形表示,对应的标志性联系以双边框的菱形表示。
弱实体没有主码,但是有分辨符,用虚下划线标明
弱实体集的主码:由该弱实体集所依赖的强实体集的主码和该弱实体集的分辨符共同组成。
如果弱实体集只参与标志性联系,而其属性不多,那么在建模时将其表述为一个属性更恰当。相反地,如果弱实体集参与到标识性联系以为的联系中,或者其属性较多,则建模时将其表述为弱实体集更恰当。
特殊化和概括我们都可以用上面三角形构建来表示,属性继承也是针对特殊化和概括而言的。
聚集:联系被当做实体对待
屏幕剪辑的捕获时间:2014/6/18 17:42
设计数据库的E-R模式
屏幕剪辑的捕获时间:2014/6/18 20:15
将E-R模式转换为表
用表来表示强实体集:
用表来表示弱实体集:
弱实体集属性加所依赖的强实体集的主码
用表表示联系集:
弱实体集和强实体集关联的联系集的表是冗余的
多对一的合并:实体A和实体B以及多对一联系集AB,如果A对B有依赖,则只建立两个表,A中多一个和B主键属性。(多对一,两张表,多的一方包含外键;多对多,三张表,关系表+两个实体表)
用表来表示多值属性:
对于一个多值属性M,必须创建新表T,其中有一列C与M对应,T中其余列对应于以M为多值属性的实体集或联系集的主码。例如员工的亲属,多行。
用表来表示概括:
1.为高层实体集创建一个表,同时为每个底层实体集创建一个表。底层实体集中包括对应于底层实体集的各属性的列,另外,也包括高层实体集主码的所有属性列。(图2-15可以建立对应6个表)
2.如果概括是不相交且全部的——即如果两个低层实体集直接隶属于同一高层实体集,那么就不会有实体同时属于这两个低层实体集;同时,高层实体集的任何实体也必然会是某个低层实体集的成员。此时,可采用另一种表示方法:不为高层实体集创建任何表,只为每个低层实体集创建一个表,表中包括对应于低层实体集各属性的列和对应于高层实体集各属性的列。(图2-15可以建立对应4个表)
用来表示聚集:
屏幕剪辑的捕获时间: 2014/6/18 20:03

MySQL 기능은 데이터 처리 및 계산에 사용될 수 있습니다. 1. 기본 사용에는 문자열 처리, 날짜 계산 및 수학 연산이 포함됩니다. 2. 고급 사용에는 복잡한 작업을 구현하기 위해 여러 기능을 결합하는 것이 포함됩니다. 3. 성능 최적화를 위해서는 WHERE 절에서 기능 사용 및 GroupBy 및 임시 테이블 사용을 피해야합니다.

MySQL에 데이터 삽입을위한 효율적인 방법은 다음과 같습니다. 1. InsertInto 사용 ... 값 구문 사용 ... 값 구문, 2. 트랜잭션 처리 사용, 3. 트랜잭션 처리 사용, 4. 배치 크기 조정, 5. 인덱스 비활성화, 6. Insertignore 또는 Insert ... ondupliceKeyUpdate를 사용하여 데이터베이스 작동 효율성을 크게 향상시킬 수 있습니다.

MySQL에서는 altertabletable_nameaddcolumnnew_columnvarchar (255) 이후에 필드를 추가하여 altertabletable_namedropcolumncolumn_to_drop을 사용하여 필드를 삭제합니다. 필드를 추가 할 때는 쿼리 성능 및 데이터 구조를 최적화하기위한 위치를 지정해야합니다. 필드를 삭제하기 전에 작업이 돌이킬 수 없는지 확인해야합니다. 온라인 DDL, 백업 데이터, 테스트 환경 및 저하 기간을 사용하여 테이블 구조 수정은 성능 최적화 및 모범 사례입니다.

설명 명령을 사용하여 MySQL 쿼리의 실행 계획을 분석하십시오. 1. 설명 명령은 성능 병목 현상을 찾는 데 도움이되는 쿼리의 실행 계획을 표시합니다. 2. 실행 계획에는 id, select_type, 테이블, type, cly_keys, key, key_len, ref, 행 및 추가 필드와 같은 필드가 포함됩니다. 3. 실행 계획에 따르면 인덱스를 추가하고 전체 테이블 스캔을 피하고 조인 작업 최적화 및 오버레이 인덱스를 사용하여 쿼리를 최적화 할 수 있습니다.

하위 쿼리는 MySQL 쿼리의 효율성을 향상시킬 수 있습니다. 1) 서브 쿼리는 데이터 필터링 및 집계 된 값을 계산하는 것과 같은 복잡한 쿼리 로직을 단순화합니다. 2) MySQL Optimizer는 하위 쿼리를 전환하여 작업에 참여하여 성능을 향상시킬 수 있습니다. 3) IN 대신에 사용하면 여러 행이 반환 오류를 피할 수 있습니다. 4) 최적화 전략에는 관련 하위 쿼리를 피하고, 사용 사용, 색인 최적화 및 하위 퀘스트 중첩을 피하는 것이 포함됩니다.

MySQL에서 문자 세트 및 콜라주를 구성하는 방법은 다음과 같습니다. 1. 서버 수준에서 문자 세트 및 콜라주 설정 : setNames'Utf8 '; setcharactersetutf8; setCollation_connection = 'utf8_general_ci'; 2. 특정 문자 세트 및 콜라주를 사용하는 데이터베이스를 만듭니다. createAbaseexample_DBCHARACTERSETUTF8COLLATEUTF8_GENERAL_CI; 3. 테이블을 만들 때 문자 세트 및 콜라주를 지정하십시오 : CreateTableAmplipt_table (idint

MySQL을 안전하고 철저하게 제거하고 모든 잔차 파일을 정리하려면 다음 단계를 따르십시오. 1. MySQL 서비스 중지; 2. MySQL 패키지 제거; 3. 구성 파일 및 데이터 디렉토리를 정리하십시오. 4. 제거가 철저한 지 확인하십시오.

MySQL에서 데이터베이스를 바꾸려면 간접적 인 방법이 필요합니다. 단계는 다음과 같습니다. 1. 새 데이터베이스를 만듭니다. 2. mysqldump를 사용하여 이전 데이터베이스를 내보내십시오. 3. 데이터를 새 데이터베이스로 가져옵니다. 4. 이전 데이터베이스를 삭제합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
