- 집합연산 : UNION, EXCEPT, INTERSECT, UNION ALL, EXCEPT ALL, INTERSECT ALL -> 합집합 호환성을 가져야 집합 연산 가능 -> ALL : 중복 허용, UNION : 중복 비허용 - 중복이 없어야한다 : 릴레이션의 투플들의 집합에서나 제한된 것. 테이블에 레코드를 집어넣을 때 막을 필요가 없다. -> 오히려 성능저하가 일어날 수 있음 : bag이라고 함. 중복된 값이 여러 테이블에 존재 가능. 김창섭의 부서번호 : 2, 개발부의 부서번호 3 -> 두 릴레이션의 컬럼 수가 같고, 도메인이 같으니까 합집합 가능. - 조인 : 관계 데이터 모델의 핵심 연산 -> 이걸 쓰지 않고는 못배긴다! - FROM절에서 보통 2~3개 정도의 릴레이션을 JOIN함. - WH..
- SQL : 1974 IBM R 시제품을 연구할 때 관계 대수 및 해석 기반으로 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 -> 1986 ANSI에서 SQL 표준을 채택 SEQUEL 이름으로 논문 발표 후 이름을 SQL로 바꿈 - SQL은 비절차절 언어이므로 내가 무엇을 원하는지만 DBMS에 알려줄 수 있음. - DBMS는 SQL문을 내부적으로 관계대수들의 트리로 만들어서 밑에서부터 위로 올라가면서 수행 - 호스트언어 : JAVA, C 등 - SQL의 구성요소 DCL = 데이터 제어어 + 트랜젝션 제어 DML = 데이터 검색어 + 데이터 조작어 DDL = 데이터 정의어 제일 자주 쓰이는것 -> SELECT문. 여기서는 프로젝션으로 쓰임. 이 SELECT와 실렉션을 혼..
- 관계 해석 : 데이터만 명시, 질의 수행 방법은 명시 X : 선언적 언어 - 관계 대수 : 질의 수행 방법도 명시 : 절차적 언어 -> DBMS에서 널리 사용되는 SQL의 이론적 기초, SQL의 구현과 최적화를 위해 DBMS의 내부언어로도 사용. - 쿼리트리 : 브랜치에서 무언가를 골라내고 조인, 최상위에서는 customer name만 뽑아냄. -> 연산자들의 수행 순서가 정해져 있다! -> 내부적으로 SQL을 이런식으로 표현함. ex) 어카운트 테이블에서 잔액이 1000이상인 것을 골라낸다 : 브랜치의 개수를 줄이는 것 -> 이후 조인하면 실행시간이 빨라짐. - 관계 대수의 특징 1. 기존의 릴레이션들로부터 새로운 릴레이션 생성 -> 관계대수 적용시 새 릴레이션이 만들어짐 2. 릴레이션or관계대수식..
- 가장 높은 시장 점유율과 신뢰성 - 대부분 운영체제 및 HW 지원 - 전자상거래와 데이터 웨어하우징을 위한 고성능 인터넷플랫폼 제공 -OLTP : 온라인 트랜잭션 처리 -> 소수의 레코드만 접근하여 트랜잭션이 끝남 -OLAP : 어마어마하게 쌓이는 데이터로부터 요약된 것. - 응용 서버(오라클 인스턴스)와 데이터베이스 분리, 프레젠테이션은 클라이언트가 맡음. - SQL : if, 반복, 입출력 등 고급 프로그래밍 언어가 가진 기능이 없음 -> PL + SQL인 PL/SQL 구문 사용. 오라클에서만 가능. - 오라클 서버는 인스턴스와 데이터베이스루 구성. 오라클 인스턴스는 백그라운드 프로세스 + 메모리 구조로 구성. - 오라클 SQL 디벨로퍼 : 오라클에다 SQL을 던질 때 PLSQ..
관계 데이터 모델 : E.F.Codd가 1970년 제안 -> 지금까지 제안된 데이터 모델 중 가장 개념이 단순한 모델의 하나 -> 최초의 프로토타입 : System R(relation), 상용제품 : 오라클 - 관계 데이터 모델이 성공을 거둔 요인 1. 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션) 사용 2. 중첩된 복잡한 구조가 없음 -> 이를 지원하는 것이 객체지향 모델 : 어려움 3. 집합 위주 데이터 처리(Codd가 수학자) -> 성능 good 4. 이론 정립 well, 관계DB 설계와 질의 처리에서 뛰어남. 릴레이션 : 2차원의 테이블 레코드 : 릴레이션의 각 행 튜플 : 레코드의 공식 용어, 행 애트리뷰트 : 릴레이션에서 하나의 이름을 가진 하나의 열 = 컬럼(sql의 표준어) -> 릴..
1.3 DBMS 발전 과정 파일시스템 : 70이전 하이브리드 : 80중반까지 관계 모델 : 80후반까지 객체 모델 : 90중반까지 객체관계 모델 : 90후반까지. - 데이터 모델 : 데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조(테이터 타입과 관계), 이 구조 위에서 동작하는 연산자들, 무결성 제약조건들 고수준 또는 개념적 데이터 모델 : 사람이 인식하는것과 유사하게 DB의 전체적인 논리적 구조를 명시 ex) 앤티티관계(ER모델*) 데이터 모델과 객체지향 데이터 모델 표현(구현)데이터 모델 : 최종 사용자가 이해하는 개념이면서 컴퓨터 내에서 데이터가 조직되는 방식과 멀리 떨어져 있진 않음 ex) 계층/네트워크/관계* 데이터 모델 저수준 또는 물리적 데이터 모델 : 데이터가 어떻게 저장되는..
데이터베이스 : 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임. 중복을 배제하여 잘 모아놓은 것. -> 화일 시스템 이후에 등장, 방데한 데이터를 빠르게 처리하는 데 약점이 있음. 운영 데이터 : 일시적인(입출력중인) 데이터를 제외하고, 조직체가 생존을 위해 늘 필요로 하는 데이터 - 데이터의 대규모 저장소, 여러 사용자가 동시에 사용 - 모든 데이터가 중복 최소화하며 통합됨 - 한 조직체의 운영데이터뿐만 아니라 데이터에 대한 설명(DB 스키마)를 포함 - 프로그램과 데이터 간 독립성 제공 - 효율적 접근, 질의 가능 - 데이터베이스 스키마 : 전체적인 데이터베이스 구조, 데이터 베이스의 모든 가능한 상태를 미리 정의 -> 내포(intention) 괄호 속에 필드=at..