본문 바로가기

DB

(15)
MySQL / Maria DB 조인(JOIN) 정리 조인(JOIN) 이란? 릴레이션 하나로 원하는 데이터를 얻을 수 없어 관계가 있는 여러 릴레이션을 함께 사용해야 하는 경우 조인(join) 연산을 이용한다. 조인 연산은 조인 속성(join attribute)을 이용해 두 릴레이션을 조합하여 하나의 결과 릴레이션을 구성한다. 조인 속성은 두 릴레이션이 공통으로 가지고 있는 속성으로, 두 릴레이션이 관계가 있음을 나타낸다. 조인 연산한 결과 릴레이션은 피연산자 릴레이션에서 조인 속성의 값이 같은 투플만 연결하여 만들어진 새로운 투플을 포함한다. [네이버 지식백과] 조인 (데이터베이스 개론, 2013. 6. 30., 김연희) * 릴레이션 : 테이블 , * 투플 : 릴레이션의 행 이라고 생각하면 될 것 같다. => 조회하고 싶은 컬럼이 다른 테이블에 있을 때 ..
Oracle DB #14 사용자 관리 1. 사용자 관리 1) 데이터베이스 보안을 위한 권한 - 기업에서 보유하고 있는 데이터들은 자료 이상의 가치가 있으므로 외부에 노출되지 않도록 보안을 해야 함 - 데이터베이스를 운영하려면 데이터베이스에 대한 적절한 보안 대책을 마련해야 함 - 오라클은 다수의 사용자들이 데이터베이스에 저장된 정보를 공유해서 사용 - 하지만 정보의 유출이나 불법적인 접근을 방지하기 위해서 철저한 보안 대책이 필요 - 이러한 보안 대책을 위해서 데이터베이스 관리자가 있어야 함 - 데이터베이스 관리자는 사용자가 데이터베이스의 객체(테이블, 뷰 등)에 대한 특정 권한을 가질 수 있도록 함으로서 다수의 사용자가 데이터베이스에 저장된 정보를 공유하면서도 정보에 대한 보안이 이루어지도록 함 - 데이터베이스에 접근하기 위해서는 사용자가..
Oracle DB #13 인덱스 1. 인덱스 1) 인덱스의 사용 용도와 장단점 - 인덱스란 SQL 명령문의 처리 속도를 향상시키기 위해서 컬럼에 대해서 생성하는 오라클 객체임 - 오라클에서의 인덱스의 내부 구조는 B* 트리 형식으로 구성되어 있음 - 트리란 나무의 뿌리 모양을 생각해 보시면 쉽게 이해할 수 있음 - 뿌리(루트)를 근거로 아래로 나무뿌리 들이 뻗어 있는 모양을 하고 있음 - 컬럼에 인덱스를 설정하면 이를 위한 B* 트리도 생성되어야 하기 때문에 인덱스를 생성하기 위한 시간도 필요하고 인덱스를 위한 추가적인 공간이 필요하게 됨 - 인덱스가 생성된 후에 새로운 행을 추가하거나 삭제할 경우 인덱스로 사용된 컬럼 값도 함께 변경되는 경우가 발생 - 인덱스로 사용된 컬럼 값이 변경되는 이를 위한 내부 구조(B* 트리) 역시 함께 ..
Oracle DB #12 시퀀스 1. 시퀀스 1) 시퀀스 개념 이해와 시퀀스 생성 - 오라클에서는 행을 구분하기 위해서 기본 키를 두고 있습니다. 기본 키는 중복된 값을 가질 수 없으므로 항상 유일한 값을 가져야 함 - 기본 키가 유일한 값을 갖도록 사용자가 직접 값을 생성해내려면 부담이 클 것임 - 시퀀스는 테이블 내의 유일한 숫자를 자동으로 생성하는 자동 번호 발생기이므로 시퀀스를 기본 키로 사용하게 되면 사용자의 부담을 줄일 수 있음 2) 시퀀스 기본 형식 CREATE SEQUENCE sequence_name [START WITH n] ① [INCREMENT BY n] ② [{MAXVALUE n | NOMAXVALUE}] ③ [{MINVALUE n | NOMINVALUE}] ④ [{CYCLE | NOCYCLE}] ⑤ [{CACHE..
Oracle DB #11 가상 테이블인 뷰 1. 뷰 1) 뷰의 개념 - 뷰(View)는 한마디로 물리적인 테이블을 근거한 논리적인 가상 테이블이라고 정의할 수 있음 - 가상이란 단어는 실질적으로 데이터를 저장하고 있지 않기 때문에 붙인 것이고, 테이블이란 단어는 실질적으로 데이터를 저장하고 있지 않더라도 사용자는 마치 테이블을 사용하는 것과 동일하게 뷰를 사용할 수 있기 때문에 붙인 것 - 뷰는 기본 테이블에서 파생된 객체로서 기본 테이블에 대한 하나의 쿼리문 - 뷰(View)란 ‘보다’란 의미를 갖고 있는 점을 감안해 보면 알 수 있듯이 실제 테이블에 저장된 데이터를 뷰를 통해서 볼 수 있도록 함 - 사용자에게 주어진 뷰를 통해서 기본 테이블을 제한적으로 사용하게 됨 뷰 테이블 생성하기 DEPT_COPY를 DETP 테이블의 복사본으로 생성해보자..
Oracle DB #10 데이터 무결성을 위한 제약 조건 1. 데이터 무결성을 위한 제약 조건2 1) 데이터 구분을 위한 PRIMARY KEY 제약 조건 - 유일키 제약 조건을 지정한 칼럼은 중복된 데이터를 저장하지는 못하지만 NULL 값을 저장하는 것은 허용 - 위와 같이 동명이인이 입사를 했다면 이를 구분할 수 있는 유일한 키가 있어야 하는데 사원번호에 NULL 값이 저장되는 바람에 이들을 구분할 수 없게 됨 - 테이블 내의 해당 행을 다른 행과 구분할 수 있도록 하는 칼럼은 반드시 존재해야 함 - 식별 기능을 갖는 칼럼은 유일하면서도 NULL 값을 허용하지 말아야 함 - UNIQUE 제약 조건과 NOT NULL 제약 조건을 모두 갖고 있어야 하는데 이러한 두 가지 제약 조건을 모두 갖는 것이 기본 키(PRIMARY KEY) 제약 조건 사원 테이블과 유사한..
Oracle DB #9 데이터 무결성을 위한 제약조건 1. 데이터 무결성을 위한 제약조건 1) 무결성 제약 조건의 개념과 종류 - 데이터 무결성 제약 조건(Data Integrity Constraint Rule)이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러 가지 규칙을 말함 무결성 제약 조건 역할 NOT NULL NULL을 허용하지 않는다. UNIQUE 중복된 값을 허용하지 않는다. 항상 유일한 값을 갖도록 한다. PRIMARY KEY NULL을 허용하지 않고 중복된 값을 허용하지 않는다. NOT NULL 조건과 UNIQUE 조건을 결합한 형태이다. FOREIGN KEY 참조되는 테이블의 칼럼의 값이 존재하면 허용한다. CHECK 저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만을..
Oracle DB #8 테이블 내용을 추가, 삭제, 수정하는 DML 1. 테이블 내용을 추가, 삭제, 수정하는 DML 1) 테이블에 새로운 행을 추가하는 INSERT문 - INSERT 문은 테이블에 새로운 데이터를 입력하기 위해 사용하는 데이터 조작어 INSERT INTO table_name (column_name, …) VALUES(column_value, …); 2) 테이블의 구조만 복사하기 - 새로운 데이터를 추가하기 위해서 사용할 명령어 INSERT INTO ~ VALUES ~는 칼럼 명에 기술된 목록의 수와 VALUES 다음에 나오는 괄호에 기술한 값의 개수가 같아야 함 INSERT INTO DEPT01 (DEPTNO, DNAME, LOC) VALUES(10, 'ACCOUNTING', 'NEW YORK'); 3) INSERT 구문에서 오류 발생의 예 - 칼럼 명..