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

0

DB & SQL

목록 보기
1/12
post-thumbnail

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

-

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

Ⅰ. 개요.

◎ Database 란.

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

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



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

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





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



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

   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 제품.

![](https://velog.velcdn.com/images/c_d_c/post/7e728da0-4711-4518-a780-72aca5efe69f/image.png)


◆ 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 [관계형 데이터 모델]
    
    ![](https://velog.velcdn.com/images/c_d_c/post/2d9b4d12-a854-4496-be0c-249c10c8014a/image.png)

✅ 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
                    ![](https://velog.velcdn.com/images/c_d_c/post/2ffb5de3-c54c-4542-b6d8-a0e95044df33/image.png)

         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
                  
                  

0개의 댓글

관련 채용 정보