ㅡ. 추상화 수준이 가장 높은 것은?

개념적 데이터 모델링 : 기업 전체 데이터베이스구조를 모델링 한다. 높은 추상화 수준을 제공

논리적 데이터 모델링 : 재사용성이 높은 데이터 모델, 키-속성-관계 표현

물리적 데이터 모델링 : 물리적 저장장치 고려, 저장장치에 맞게 데이터베이스 구축 -> 데이터베이스 성능, 가용성, 보안 등 고려 

 

ㅡ. 데이터베이스 모델링 시에 고려사항

파급효과, 복잡한 요구사항을 간결하게표현, 데이터베이스 모델링에 대한변경이 프로젝트 후반부에 변경되면 모델링 변경에 따른 파급효과가 있습니다. 

 

ㅡ.3층 스키마에서 개념 스키마는 Integration 과 Reuse 를 중요하게강조합니다.

개념 스키마는 데이터베이스전체 구조를 통합 데이터베이스, 

외부레벨/외부스키마 : 사용자 관점 , 업무상 관련있는 데이터만접근

개념레벨/개념스키마 : 전체 집단에서 데이터베이스 구조표현

내부레벨/내부스키마 : 데이터베이스의 물리적 저장구조, 운영체제 하드웨어에 종속적입니다.

 

ㅡ. 데이터베이스 품질 저하 요소

1. 중복

2. 비유연성

3. 비일관성

 

ㅡ. 엔터티

개념, 사건, 사람, 장소 같은 명사다.

저장하기 위한것, 업무상 필요한 관심사

 

ㅡ. 엔터티 특징

유일한 식별자를 통해 식별 가능, 속성이 반드시 존재, 다른 엔터티와 한 개 이상 관계가 있습니다. 

인스턴스집합이고 2개 이상의 인스턴스 집합입니다. 

 

ㅡ. 엔터티 관계 생략 가능

통계성 엔터티, 코드성 엔터티, 시스템 내부 엔터티는 관계 생략 가능

통계성 엔터티 - 통계 업무만을 위해 별도로 엔터티 다시 정의 

 

코드성 엔터티

 

시스템 내부 엔터티 

*ref : https://goddaehee.tistory.com/186

 

ㅡ.다중 값

다중 값은 엔터티 속성 중에서 여러 개의 튜플(행) 을 가지고 있는 속성입니다. 

별도의 엔터티로 분리될 수 있어야합니다. 

e.g)배송지는 주문이 발생할 때마다 데이터가 다르게 입력될 수 있기 떄문에 별도의 엔터티로 분류된다고 합니다. 

 

ㅡ. 기본엔터티

다른 엔터티에 의존하지 않습니다. 

e.g) 고객,사원, 부서,상품 

 

ㅡ. 중심엔터티

기본 엔터티에 의해 발생되고 엔터티간에 중심적인 역할을 수행

e.g) 주문, 계약, 청구 등 

 

ㅡ. 행위 엔터티 

두 개이상의 부모 엔터티를 가집니다. 빈번하게 발생되는 데이터를 저장합니다.

e.g) 주문 이력, 계약 체결 이력, 계약 취소 이력

 

ㅡ. 비식별 관계 

서로 관계가 있는 테이블 상에서 FK를 가진 테이블에서 PK를 사용하지 않는 것이다.

e.g) 회원에서 기본키인 회원번호는 주문에서 기본키로 사용하지 않는 것입니다.

 

ㅡ. 식별 관계

e.g) 회원에서 기본키인 회원번호를 주문에서 기본키로 사용하는 것입니다. 

 

ㅡ. sqld ALL

ALL은 모두 만족할 경우 true가 나오게 됩니다. 

e.g) select * from emp where sal<= all(10,20) = sal<=10 && sal<=20

10보다 작은 값만 출력됩니다. 

 

ㅡ. NOT IN

NULL과의 비교연산은 항상 UNKNOWN 값을 반환하게 됩니다. WHERE이하에서 NOT IN을 사용할때는 TRUE가 아니게 되므로 레코드가 출력되지 않는 현상이 발생하게 됩니다. => NULL이 포함되어 있으면 값이 안나옵니다. 

 

ㅡ. Function 정리

CEIL : 숫자보다 크거나 같은 최소의 정수를 되돌려 줍니다.

FLOOR : 숫자보다 작거나 같은 최소의 정수를 되돌려 줍니다.

ROUND : m+1 자리에서 반올림합니다.

TRUNC : m+1 자리에서 자른다. 

TRUNC(3.46) = 3

FLOOR(3.46) = 3 //작거나 같은 

ROUND(3.46) = 3 //반올림

CEIL(3.46) = 4 //크거나 같은 

 

ㅡ. ISO 표준 SQL 변경

SELECT * FROM EMP A, DEPT B WHERE A.id=B.id AND B.name="gogo"
SELECT * FROM EMP A INNER JOIN DEPT B WHERE A.id=B.id AND B.name="gogo"

ㅡ. 

CONCAT, ||, + 다 같은 의미이고 &만 다르다.

 

ㅡ. Natural JOIN은 식별자를 가질 수 없습니다.

SELECT EMP.ID FROM EMP NATURAL JOIN DEPT;

ㅡ. 리프데이터면 1 그렇지 않으면 0 

CONNECT_BY_ISLEAF

 

ㅡ. CROSS JOIN
row 수 곱하기 

 

ㅡ. sql endpoint

계층형 쿼리에서 최대 계층의 수를 구하기 위해서는 MAX(LEVEL) 사용해서 최대 계층 수를 구합니다. 

 

http://sqlfiddle.com/#!9/2c091c/1

Create table DEPT(
  `deptno` int(10) primary key,
  `dname` varchar(20)
 );
 
 Create table EMP(
   `empno` int(10) primary key,
   `ename` varchar(20),
   `deptno` int(10),
   `job` varchar(20),
   `sal` int(10)
   );
 
 insert into `DEPT` values(10, 'ACCOUNTING');
 insert into `DEPT` values(20, 'RESEARCH');
 insert into `DEPT` values(30, 'SALES');
 insert into `DEPT` values(40, 'OPERATIONS');

'Sqld' 카테고리의 다른 글

SQLD04 :: SQL최적화의 원리(1)  (0) 2020.09.01
SQLD03 :: SQL기본과 활용  (0) 2020.08.31
SQLD03 :: SQL 기본  (0) 2020.08.30
SQLD02 :: 동적SQL  (0) 2020.08.26
SQLD01 :: SQLD 시작(SQL Base)  (0) 2020.08.24