[SQL.00] 오라클(Oracle) 데이터베이스(DB)의 기본지식

Kama_Code·2023년 8월 12일
1

SQL

목록 보기
3/6
post-thumbnail
post-custom-banner

21C 설치와 설정에 대해 배워보았다.
사실 오라클 설치는 어려운 편에 속한다.
독자는 성공적으로 되었으니 이 포스팅을 보는 거라고 추측한다.
설치에 성공했다면 깊은 축하를 보낸다.

데이터베이스는 엄청 중요하다.
SQL에 관심이 있는 사람은 추천하는 것이 있는데
▶ SQL 국가 자격증 바로가기

이것이 있다.
국가 DB를 다룰 때 필수인 자격증이라 따두면 굉장히 유용하다.

기본 개념과 용어

❖ 데이터베이스

  • 여러 사람에 의해 공유되어 사용될 목적으로
    통합하여 관리되는 데이터의 집합
  • 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을
    없애고 구조화하여 기억시켜 놓은 자료의 집합체

❖ 관계형 데이터베이스 관리시스템

  • RDBMS(Relational DataBase Management System)
  • IBM 산호세 연구소의 에드거 F. 커드가 도입한 관계형 모델을
    기반으로 하는 데이터베이스 관리 시스템
  • 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록
    해주는 소프트웨어 도구의 집합
  • DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히
    응답하여 데이터를 사용할 수 있도록 해준다

❖ DBMS의 종류

ORACLE, DB2, INFORMIX, SYBASE, MS-SQL, Postgres,
Tibero, MySQL, MS-access


❖ SQL(Structured Query Language)

  • RDBMS(관계형 데이터베이스 관리 시스템)의 데이터를 관리하기
    위해 설계된 특수 목적의 프로그래밍 언어이다.
  • 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리,
    데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정
    관리를 위해 고안되었다.
  • 대부분의 데이터베이스 관련 프로그램들이 SQL을 표준으로
    채택하고 있다

❖ SQL의 종류

  1. DQL : Data Query Language(질의어)
    ㄴ SQL에서 테이블에 저장된 데이터를 조회하는데 사용
    ㄴ SELECT문 : 데이터 조회
  2. DML : Data Manipulation Language(데이터 조작어) // 데이터
    ㄴ데이터베이스에 저장된 데이터를 조작하기 위해 사용하는 언어
    (1) Insert문 : 데이터 삽입
    (2) Update문 : 데이터 수정
    (3) Delete문 : 데이터 삭제
  3. DDL : Data Definition Language(데이터 정의어) // 테이블
    ㄴ데이터베이스 관리자나 응용 프로그래머가 데이터베이스의
    ㄴ논리적 구조를 정의하기 위한 언어로서 데이터 사전(Data
    ㄴDictionary)에 저장된다.
    (1) Create문 : 테이블, 뷰, 프로시저 생성
    (2) Alter문 : 테이블, 뷰, 프로시저 수정
    (3) Drop문 : 테이블, 뷰, 프로시저 삭제
  4. DCL : Data Control Language(데이터 제어어)
    ㄴ 데이터에 대한 접근 권한 부여 등의 데이터베이스 시스템의
    트랜잭션을 관리하기 위한 목적으로 사용되는 언어
    (1) GRANT문 : 사용자에게 특정 권한을 부여
    (2) REVOKE문 : 사용자에게 부여했던 특정 권한을 제거

❖ 용어 몇가지


❖ 스키마

데이터베이스의 구조를 전반적으로 기술한 것
구체적으로 데이터베이스를 구성하는 데이터 레코드의 크기, 키의 정의,
레코드 간의 관계 등을 정의

● 외부 스키마

○ 사용자의 입장에서 정의한 데이터베이스의 논리적 구조
○ 데이터들을 어떤 형식, 구조, 화면을 통해 사용자에게 보여줄 것인가에 대한 명세
○ 하나의 데이터베이스에는 여러개의 외부 스키마가 존재
○ 일반 사용자에게는 Query를 이용해 DB를 사용할 수 있도록 하고
응용 프로그래머는 언어를 사용해서 DB에 접근하도록 한다.

● 개념 스키마

○ 조직체 전체를 관장하는 입장에서 DB를 정의한 스키마.
○ DB에 대한 모든 논리적 구조를 기술하기 때문에 하나만 존재
○ 통상 스키마 라고 하면 개념 스키마를 일컫는다.

● 내부 스키마

○ 데이터베이스가 어떻게 저장장치에 저장될 지에 대한
명세(어떤 일에 관련된 자세한 내용이나 구체적인 항목.).
○ 물리적인 저장장치와 데이터베이스 간의 관계를 정의하므로
시스템 관점의 스키마이다.


❖ CRUD

Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서
일컫는 말.
데이터베이스의 가장 기본적인 데이터 처리 기능을 가리키는 말

❖ 오라클의 자료형

● 문자형 데이터 타입

● 숫자형 데이터 타입

● 날짜형 데이터 타입


❖ 파일 시스템이란?

컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는
조직하는 체제를 가리키는 말

❖ 파일 시스템 대신 데이터베이스를 사용하는 이유?

  • 데이터 중복과 불일치 (Data redundancy and inconsistency)
    ㄴ같은 정보가 서로 다른 파일에 저장될 수 있으며, 이를 확인하기 어렵다.
  • 자료 접근이 어렵다(Difficulty in accessing data)
    ㄴ파일 시스템의 경우, 파일에 접근하는 방식이 응용 프로그램마다 정의되기 때문에, 특정 기능을 위해 자료 접근을 하기 위해서는 그 접근하는 방식을 직접 구현해야 한다.
  • 생산성이 낮다
    ㄴ각 응용 프로그램마다 새로운 파일 형식과 설명을 설계하는 과정부터 시작해서 새로운 파일에 접근하는 방식을 일일이 구현해야 하기 때문에 생산성이 낮다.
  • 데이터 모델링 개념이 부족하다
    ㄴ단순히 순차적인 레코드만으로 나타내기 때문에 데이터의 의미와 데이터 간의 상호관계를 나타내기 힘들다.

데이터 모델링 : 현실세계를 데이터로 표현하기 위해 추상화한다.
★★ 특징 : 추상화, 단순화, 명확화

  • 보안 기능이 미흡하다
    ㄴ파일 시스템에서는 파일 단위로만 접근을 할 수 있기 때문에, 사용자 권한에 따른 세밀한 접근 제어(레코드 단위)를 실행하기 어렵다.
    (Hard to provide user access to some, but not all, data)
  • 쉬운 질의어가 제공되지 않는다
    ㄴSQL과 같은 쉬운 질의어가 제공되지 않는다.
  • 다수의 사용자를 위한 동시성 제어가 제공되지 않는다(Concurrent access by multiple users)
    ㄴ파일 시스템의 경우, 다수의 사용자가 동시에 접근을 할 때에, 데이터의 불일치 등의 문제를 일으킬 수 있다.
  • 데이터 무결성을 유지하기 어렵다 (Integrity problem)
    ㄴ파일 내의 데이터가 만족시켜야 하는 무결성 제약조건(constraint)들을 명시하려면 프로그래머가 직접 프로그래밍 언어를 사용하여 일일이 프로그램에 표현해야 하므로 데이터 무결성을 유지하기가 어렵다. 또한, 새로운 제약조건들을 추가하거나 기존의 제약조건을 수정하는 것도 어렵다.

SQL과 NOSQL의 차이

SQL (관계형 DB)

SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있다
관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다.

데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
데이터는 관계를 통해 여러 테이블에 분산된다.

SQL 장점
ㄴ명확하게 정의된 스키마, 데이터 무결성 보장
ㄴ관계를 중요시하며 각 데이터를 중복없이 한번만 저장

SQL 단점
ㄴ덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 함. (나중에 수정하기 힘듬)
ㄴ관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
ㄴ대체로 수직적 확장만 가능함

NoSQL (비관계형 DB)

말그대로 관계형 DB의 반대다.

스키마도 없고, 관계도 없다!

NoSQL 장점
ㄴ스키마가 없어서 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
ㄴ데이터는 애플리케이션이 필요로 하는 형식으로 저장됨. 데이터 읽어오는 속도 빨라짐
ㄴ수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능

NoSQL 단점
ㄴ유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
ㄴ데이터 중복을 계속 업데이트 해야 함
ㄴ데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함 (SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능)

즉, 관계를 맺고 있는 데이터가 자주 변경될 때는 SQL이 수월하며,
읽기를 자주 하지만, 데이터 변경은 자주 없는 경우 NOSQL이 수월하다.
관계의 형태로 데이터의 정확성을 따지기 위해선 SQL이 좋으며,
유동적이며 속도가 중요할 땐 NOSQL이 좋다.
배달의 민족이나 일부 대기업들의 DB는 NOSQL을 사용하긴 한다.


이렇게 기본 개념과 용어까지 알아보았다.
다음 포스팅은 급한 사람들을 위해 sql db 명령어 미리보기를 작성해보도록 하겠다.
다음 포스팅에서 계속..

profile
[Java SQL HTML CSS JS Studying] 발전을 꿈꾸며 이상을 실현합니다
post-custom-banner

0개의 댓글