Data [ Engineer & Analytics &science ]/DB & SQL(RDBMS, NoSQL)

[ DB & SQL(RDBMS, NoSQL) ] 데이터 베이스 공부 : DB 기초.

안다미로 : Web3 & D.S 2024. 12. 11. 17:12

 

 

[ DB & SQL(RDBMS, NoSQL) ]  데이터 베이스 공부 : DB 기초.

 


 

∇ DB & SQL_데이터 베이스 공부 : DB 기초 핵심.

목   차

1. 개요.
2. DBMS
3. 관계형 데이터 모델.
4. SQL 개요.

 

 


 

Ⅰ. 개요.


 

 ◎ Database 란.

  :: 여러 응용프로그램 또는 유저들이 공유 * 이용 할 수 있도록 체계적으로 통합&저장 한 데이터들의 집합.

       == 데이터들을 저장하고 조회하는 프로그램.

 

          @ '데이터베이스(DB)' 는 단순한 저장소를 넘어서 데이터 중복이 있을 경우, 

                   이를 통합하여서 구조적이고 효율적으로 데이터를 저장합니다.

 

 

       1 ) 데이터베이스의 데이터 특징.

 

              - '데이터베이스(DB)'가 구조적인 형태를 유지하며 데이터를 저장하기 위해서는 아래 규칙을 준수해야 합니다.

 

통합된 데이터 (Integrated Data)
여러가지 데이터를 통합해 저장하는데 중복된 정보를 그대로 저장하면 용량 낭비가 발생합니다.
따라서 데이터베이스는 중복된 정보에 대해 데이터를 통합하여 자료의 중복을 최소화하고자 합니다.

      

저장된 데이터 (Stored Data)
컴퓨터가 접근할 수 있는 매체에 데이터를 저장합니다.

 

운영 데이터 (Operational Data)
데이터베이스는 주로 조직의 목적을 위해 존재하고 활용되는 운영 데이터를 다루는데 이용됩니다.
ex) 쇼핑몰의 판매량이나 재고량 등

 

공유 데이터 (Shared Data)
여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터입니다.
데이터베이스라는 sw 를 사용하는 가장 근본적인 이유가 됩니다.
하나의 컴퓨터나 시스템을 위한 데이터가 아니라 여러 시스템들이 공용으로 액세스하여 이용합니다.

 

       2 ) 데이터베이스의 기능적 특징.

 

 

               1. 최소한의 중복 [ minimal redundancy ] 

                     -> 중복의 정도를 최소한으로만 허용하는 통합 데이터 ( intergrated data)

 

               2. 실시간 접근성 [ Real-Time-Accesibility ] 

                     -> 데이터베이스는 사용자의 요구에 신속*정확하게 응답이 가능해야 합니다

                            ex) 검색, 주문 등의 작업.

 

               3. 지속적이고 동적인 변화 [ continuous Evolution ] 

                     -> 데이터이 insert,Delete,Update 로 항상 최신의 데이터를 유지해 현실세계를 반영합니다.

 

               4. 실제 데이터에 의해 참조 가능 [ minimal redundancy ] 

                     -> DB에 있는 데이터를 참조할 때 사용자의 요구에 따른 데이터 내용으로 데이터의 위치나 주소값을 찾음.

 

               5. 동시 공용 [ minimal redundancy ] 

                     -> 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있엉 ㅑ합니다

                           ex) 여러 고객이 같은 종류의 상품을 동시에 주문.

 

 


       3 ) 데이터베이스의 목표.

 

               1. 지속적인 "데이터 관리" & "데이터 보호"

               2. 데이터 안정성 보장

               3. 데이터 무결정 보장.

 

 


 

 

Ⅱ. DBSM : Database Management System.


   ☆ 데이터베이스를 관리하기 위해 필요한 SW 패키지 집합체.

 

◎ 주요 기능.

      ● 데이터의 추가/조회/변경/삭제

      ● 데이터의 무결성 체크

      ● 트랜잭션 관리

      ● 데이터의 백업 및 복원

      ● 데이터 보안 관리.

 

 

    ◆ DBMS 발전 과정.

 

           1) 파일 시스템 ( ISAAM, VSAM )

 

           2) 계층형(Hierahical) HDBMS (IMS , System2000)

 

                   - 데이터를 트리 구조로 표현하는 방식,

 

                   - 데이터 접근 속도가 빠르지만, 데이터의 중복이 많고 구조 변경이 어려우며 관계 표현에 제한이 있습니다.

 

           3) 네트워크형(Network) NDBMS (IDS , TOTAL, IDMS)

 

                   - 데이터를 그래프 구조로 표현하는 방식 (노드, 링크)

 

                   - HDBMS 보다 관계 표현이 유연하고 '다대다' 관계를 지원하지만,

                          구성과 설계가 복잡하고 데이터 종속성을 해결하지 못했습니다.

 

           4) 관계형(Relational) RDBMS ( Oracle, My-SQL, DB2, SQL Server, Sybase...)

 

                   - 데이터를 테이블 형태로 표현하는 방식 ( 테이블 간 외래키로 관계 표현 )

 

                   - 데이터 중복을 최소화하고 구조 변경이 쉬우며, SQL을 사용해 데이터를 쉽게 조작할 수 있는 장점. !

 

                   - ACID 원칙을 준수하여, 데이터 무결성과 일관성을 보장합니다.

 

           5) 객체지향(Object Oriented) ODBMS ( Object Store, UniSQL)

 

                   - 데이터를 객체 형태로 표현하는 방식

                   - 성능 이슈와 표준화 부족, SQL 호환 X 등의 단점.

 

           6) NO SQL(Not Only SQL)

 

                   - 테이블 형태의 관계형 모델이 아닌 여러가지의 모델로 데이터를 표현하는 방식.

                       [ Document, Key-Value, Graph 등으로 데이터를 나타낼 수 있음 ]

 

                   - 어느 한 가지 형태의 데이터베이스를 지칭하지 않고, RDBMS의 테이블 형태가 아닌 형태를 띈 DB를 총칭

 

                   - RDBMS 보다 확장성과 가용성이 높고 유연한 스키마를 가지지만,

                        데이터의 일관성이 항상 보장되지 않고 기존 SQL과 호환되지 않는다는 단점이 존재합니다.

 

                   - 대용량 데이터나 분산 처리에 매우 빠르게 대응 가능하기 때문에 SNS에 활용됩니다.

 

                   - MongoDB, HBase, Cassandra, Redis.

 

 

    ◆ DBMS 제품.

 

 

    ◆ Data Warehouse : DW

          ※ 분석을 위하여 여러 개의 데이터 저장소들에 흩어져 있는 각종 데이터를 하나의 저장소로 모은 데이터베이스.

 

                  ● 일반적인 operational DB 와는 구별되는 analytics DB

                  ● Data warehousing : DW를 구축하고 사용하는 프로세스.

 

 

 

    ◆ Database Object

          ※ DB의 구성 요소 중 테이블이 가장 중요합니다.

        - 이 외에도 여러 종류의 자료 형태가 존재하는데, 이러한 DB를 구성하는 개별 단위 요소를 객체(Object)라고 합니다.

 

            

 


Ⅲ. 관계형 데이터 모델.


 

    ◎ data model : 현실 자료를 추상화하여,  정형화된 형태로 표현하는 방식.

 

    ◎ database model 

            ● DBMS 가 지원하는 공식 언어로 기술된 DB 구조나 형식.

            ● DBMS 와 결합하는데 사용되는 데이터 모델.

 

    ◎ 관계형 데이터 모델 ( relation data model ) 

            : 테이블 형식(2차원 구조)을 이용하여, 데이터를 정의하고 설명하는 데이터 모델.

 

    ◎ 관계형 데이터 베이스 : 관계형 데이터 모델을 이용한 데이터베이스.

 

 

 

    ◆ Relation Data Model [관계형 데이터 모델]

 

 

    ✅ relation data model 용어.

 

                  ◎ tuple (튜플, 레코드)

                    

                        √ 유일성(uniqueness) : 테이블 내에는 2개 이상의 동일 튜플이 존재할 수 없음.

                        √ 튜플들은 순서를 갖지 않음.

 

 

                  ◎ attribute(속성, column, 통계데이터에서는 variable)

                    

                        √ 순서를 갖지 않음.

                        √ 속성값(attribute value)는 반드시 원자값(atomic value)

 

 

                  ◎ table schema

                    

                        √ DBMS에서 데이터 구조를 기술.

 

 

                  ◎ database schema

                    

                        √ shcema : 구조와 표현법에 대한 정의.

 

 

                 ◎ key : 테이블에서 특정 튜플을 식별 가능하게 하는 속성의 집합.

                    

                        √ super key : 아무런 제약없이 튜플을 구분할 수 있는 속성의 집합 

                                 ex) 학번, 주민등록번호 등

                        √ candidate key : 키 중 최소한의 속성만으로 구성된 키

                                 ex) 주민등록번호

                        √ primary key : 후보키 중 하나만을 선택하여 식별자로 사용.

                        √ foreign key : 다른 테이블의 기본키를 참조,

 

 


 

Ⅳ.  SQL 개요.


 

   ◇ SQL [ Structured Query Language ]

 

          :: DBMS를 다루기 위한 표준언어, 응용프로그램과 DBMS 사이의 중간 다리 역할 담당.

 


 

          ✅ SQL의 역할 분류.

 

                   1) DBMS를 제어.

                   2) 데이터를 정의

                   3) 데이터를 조작

 

                 

             1. DCL (  "Data Control Language" , "데이터 제어 언어" )

 

                   1) DB에서 데이터 엑세스를 제어.

                   2) 데이터베이스에서 접근하고 객체들을 사용하도록 권한부여 (GRANT

                          또는 권한을 회수(REVOKE) 하는 명령어.

 

 

             2. DDL (  "Data Definition Language" , "데이터 정의 언어" )

 

                   1) 데이터의 저장 구조를 정의하는 언어 ( 테이블 등)

                   2) DB 스키마, 테이블스키마를 정의*수정*삭제/ 인덱스의 생성 및 삭제를

                        [ CREATE : 생성 / ALTER : 변경 / DROP : 삭제 / RENAME : 이름변경 / 완벽제거 : TRUNCATE ]

 

                        ● DROP vs TRUNCATE

 

 

 

             3. DML (  "Data Manipulation Language" , "데이터 조작언어" )

 

                    1) 데이터에 접근 및 조작하는 언어.

                    2) 튜플의 검색, 삽입, 삭제 수정과 같은 명령문.

 

                        ● SELECT : 데이터 조회 명령어로,  RETRIEVE 라고도 함.

                        ● INSERT, UPDATE, DELETE : 데이터에 변형을 가하는 명령어 ( 삽입, 수정 삭제 )

 

 

             4. TCL(  "Transaction Control  Language" , "트랜젝션 제어어" )

 

                    1) 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션)별로 제어하는 명령어.

 

                        ● COMMIT

                        ROLLBACK

                        SAVEPOINT

 

 


          ✅ SQL의 역할별 구문 작성법.

 

 

             1. SQL 데이터 제어문 :  데이터베이스 객체 이용권한 부여.

 

                      - GRANT

                      - DENY

                      - REVOKE

 

                 ex) GRANT CREATE TABLE TO '사용자 계정'

 

 

             2. SQL 데이터베이스/테이블 정의문 : DB 객체 생성, 삭제, 수정

 

                      - CREATE : 생성

                      - DROP : 삭제

                      - ALTER : 수정

 

                 ex)  CREATE DATABASE [데이터베이스_이름]

 

 

             3. SQL 데이터 조작문 : 테이블 검색, 삽입, 갱신, 삭제

 

                      - SELECT

                      - INSERT

                      - UPDATE

                      - DELETE