Study/데이터베이스 | DB
-
식별자 비식별자Study/데이터베이스 | DB 2021. 5. 27. 22:00
식별자관계 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우 Null값이 오면 안되므로 반 드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우 비식별자관계 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하 는 경우 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우 테이블 설계시 인덱스와 관련된 설명 식별자 관계만을 사용하였을 경우 : 기본키 속성의 숫자가 증가하여 SQL구문이 복잡해진다. 비식별자 관계만을 사용하였을 경우 : 테이블 간의 과다한 조인을 유발하여 조인에 의한 성능 저하가 발생한다.
-
정규화란 ? / 정규화 절차Study/데이터베이스 | DB 2021. 5. 25. 23:11
정규화 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법 데이터를 분해하는 과정 데이터중복을 제거하고, 데이터 모델의 독립성을 확보하기 위한 방법 실직적으로 제 3정규화까지만 수행 정규화를 수행하지 않아, 불필요한 값이 추가되거나, 입력할수 없는 현상을 이상현상(Anomarly)라고 함 정규화 절차 정규화 절차 설명 제1정규화 -속성(Attribute)의 원자성을 확보 -기본키(Primary)를 설정 제2정규화 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해) 제3정규화 -기본키를 제외한 칼럼 간에 종속성을 제거 -이행 함수 종속성 제거 BCNF 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해 제4정규화 여러 칼럼들이 하나릐..
-
속성(Attribute)의 종류Study/데이터베이스 | DB 2021. 5. 22. 01:25
1. 분해 여부에 따른 속성의 종류 종류 설명 단일 속성 하나의 의미로 구성된 것으로 회원ID, 이름 복합 속성 - 여러 개의 으미가 있는 것으로 대표적으로 주소 - 주소는 시, 군, 동 등으로 분해 가능 다중값 속성 - 속성에 여러 개의 값을 가질 수 있는 것으로 예를 들어 상품LIST - 다중값 속성은 엔터티로 분해됨. 2. 특성 따른 속성의 종류 종류 설명 기본 속성 - 비즈니스 프로세스에서 도출되는 본래의 속성. - 회원ID, 이름, 계좌번호, 주문 일자 등 설계 속성 - 데이터 모델링 과정에서 발생되는 속성 - 유일한 값을 부여 - 상품코드, 지점 코드 등 파생 속성 - 다른 속성에 의해서 만들어지는 속성 - 합계, 평균 등
-
키의 종류Study/데이터베이스 | DB 2021. 5. 21. 00:19
데이터베이스 키 설명 기본키 (Primary Key) 후보키 중에서 엔터티를 대표할 수 있는 키 후보키(Candidate Key) 후보키는 유일성과 최소성을 만족하는 키 슈퍼키(Super Key) 슈퍼키는 유일성은 만족하나, 최소성을 만족하지 않는 키 대체키(Alternate Key) 대체키는 여러 개의 후보키 중에서 기본키를 선정하고 남은 키 외래키(Froeign Key) -하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조무결성(Referential Integrity)을 확인하기 위해 사용되는 키 -즉, 허용된 데이터 값만 데이터베이스 저장하기 위해 사용. 키(Key) 중 가장 근본이 되는 키는 기본키(PK)이다. 후보키와 슈퍼키의 차이점은 슈퍼키는 최소성을 만족하지 않는다는 점이다.
-
count(*) 과 count(1)Study/데이터베이스 | DB 2021. 4. 28. 23:14
DB에서 count(*)과 count(1)를 혼용하면서 둘의 차이점이 있는지 궁금한 분들이 있을 것이다. 결론은 '차이가 없다'이다. -간혹 몇몇 DBMS마다 다르다는 말도 있지만, 결론적으로는 두 함수는 같은 결괏값을 도출해냅니다. - 단 count(칼럼명)일 경우에는 해당 칼럼에 NULL을 제외한 칼럼의 수를 세게 됩니다. CREATE TABLE sql_test_a ( ID VARCHAR2(4000 BYTE), FIRST_NAME VARCHAR2(200 BYTE), LAST_NAME VARCHAR2(200 BYTE) ); CREATE TABLE sql_test_b ( ID VARCHAR2(4000 BYTE) ); INSERT INTO sql_test_a (ID, FIRST_NAME, LAST_NAME..
-
commit, rollback 이란?Study/데이터베이스 | DB 2020. 9. 9. 15:40
oracle 기준으로 작업을 진행합니다. COMMIT 명령어와 ROLLBACK 명령어의 사용 이유 데이터 무결성이 보장 영구적으로 변경하기 전에 데이터의 변경사항을 확인 논리적으로 연관된 작업을 그룹화 Commit 이전까지 행하던 작업들을 disk로 옮기는 작업 저장하는 작업 다른 세션에서도 해당 세션을 확인할 때, 저장되어있도록 하기 RollBack 저장된 작업을 이전 상태로 되돌리는 작업 되돌리는 작업 이전 commit지점으로 돌아가는 명령어 논리적인 작업의 단위를 취소하기 위한 작업
-
ORA-01756: 단일 인용부를 지정해 주십시오 | SQL ERRORStudy/데이터베이스 | DB 2020. 9. 8. 14:44
update dept2 set deptno=deptno+5 where (dname like'%R%); 위 쿼리문을 실행하자 '단일 인용부를 지정해 주십시오'라는 error가 뜹니다. 이러한 문제는 대부분 오탈자인 경우가 많습니다. 자세히 보면 '%R%를 하고 ' 로 닫지 않은 것이 보입니다. '를 다시 써주니 제대로 쿼리가 실행됩니다. 오탈자를 항상 확인하려는 습관을 길러야 합니다. 또한 update를 한 경우에는 set과 where을 꼭 붙여야 한다는 점을 까먹으면 안 됩니다. 없어도 실해은 되지만 전체 테이블을 수정하는 실수를 할 수 도 있기 때문입니다.