본문 바로가기

Archived(CSE Programming)/SQL(Oracle)

SQL_DB의 기본

오라클 sql 대문자로 작성(들여쓰기 기본)

DRAG 실행 ALT + X, 현재 실행 부분 ALT + S

전체 실행 CTRL + ALT + X

 

실제 모델링 개념 - 논리 - 물리 과정이 필요하지만 skip

# 데이터베이스의 기초

  • DB: 한 조직의 여러 응용 시스템에서 공용할 수 있도록 중복되는 데이터를 최소화하여 통합/저장한 운영 데이터 집합을 의미
  • DBMS: DB에서 저장/검색/수정하는 데이터베이스 전용 관리 프로그램(Oracle, DB2, MySQL)
  • DBMS 이점: 데이터 독립화 / 중복 최소화(무결성 보장) / 보안 향상 / 관리 편의성 향상
  • 변천 과정: 파일(1950) - 계층형 DB(1960) - 네트워크형 DB(1970) - 관계형 DB, RDB(1980) - 객체지향형 DB, OODB(1990) - 객체관계형 DB, ORDB(2000)  <현업에서는 비용과 성능 고려하여 주로 RDBMS 사용>

관계형 데이터베이스

  • 모든 데이터를 2차원 테이블 형태로 표현하고, 테이블 사이의 비즈니스적 관계를 도출하는 구조를 가진 DB 유형
  • 데이터 중복을 최소화할 수 있으며, 업무 변화에 대한 적응력이 우수

관계형 데이터베이스와 ERD(Entity Relationship Diagram)

  • 비즈니스 수행을 위해 다루어야 할 데이터를 파악하고 그 관계를 표현한 것
  • 구성 요소 > Entity, Attribute, Relationship

Identifier 식별자(Entity) 속성 Attribute Relationship Occurence

기본키는 Not Null, Unique, 변경 불가(자식 테이블과 관계시)

외래키는 변이된 자식의 기본키, Null 허용

NULL: 컬럼의 값이 없는 경우(0 이나 공백과 다름, 모든 데이터타입 사용 가능)

 

기본키 

  • 각 행을 식별할 수 있는 컬럼 및 컬럼 조합(Composite 키 구성 가능)
  • 생략되거나 중복되지 않아야 함(Compsite 키일 경우 조합 결과가 중복되지 않아야 함)
  • 테이블당 1개만 존재

외부키

  • 다른 테이블의 기본키를 참조하는 컬럼 및 컬럼 조합
  • 테이블의 연관관계를 표현(다른 테이블의 기본키와 일치하거나 또는 NULL)
  • 자기 테이블의 기본키(또는 그 일부)를 참조할 수 있음
  • Composite 키 구성 가능
  • 참조 중인 기본키 범위 내에서 변경 가능(존재하지 않아도 무방)

SQL

  • 관계형 DB에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
  • 원하는 데이터를 찾는 방법(절차)이 아닌 조건을 기술하는 방식 > 어떤 방법으로 데이터를 찾을 것인지는 DBMS가 결정
  • SELECT(데이터 검색), DML(데이터 조작), DDL(데이터 정의), TCL(트랜잭션 제어)

주요 데이터타입

  • NUMBER : 숫자
  • CHARACTER(CHAR / VARCHAR2 / LONG): 고정 길이(2000B), 가변 길이(4000B), 가변 문자(2GB)
    DATE: 날짜(CHAR 타입으로 취급 가능)
  • LOB(CLOB / BLOB) : 가변문자 또는 가변 Binary (객체지향을 위한 데이터타입)
  • 실제 사용하는 것은 NUBMER와 VARCHAR2

CHAR형을 쓰는 것은 고정된 길이값을 필요할 때 CHAR(10) 형의 'ABC'와 VARCHAR2의 'ABC'는 다르다(7byte의 공백이 추가로 있음)

 

DATE

  • 일자(세기/년/월/일) 시간(시/분/초) 정보를 관리
  • 기본적으로 화면에 '년/월/일' 정보만 표시
  • 날짜 연산 및 비교 가능

 

'Archived(CSE Programming) > SQL(Oracle)' 카테고리의 다른 글

SQL_SET_SubQuery  (0) 2020.01.22
SQL_JOIN  (0) 2020.01.21
SQL_Additional_SELECT_그룹 함수  (0) 2020.01.21
SQL_Additional_SELECT_단일 행 함수  (0) 2020.01.20
SQL_SELECT  (0) 2020.01.20