Database 28

트랜잭션의 특성(Commit, Rollback, Savepoint)

트랜잭션(Transaction)의 특성특징설명원자성(Atomicity)트랜잭션은 DB연산의 전부가 실행되거나 전혀 실행되지 않아야 한다.(ALL OR NOTHING) 즉, 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 함.일관성(Consistency)트랜잭션 실행 결과로 DB상태가 모순되지 않아야 함.고립성, 격리성(Isolation)트랜잭션 실행 중에 생성되는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다.즉, 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없음.영속성, 지속성(Durability)트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적으로 보장이 되어야 한다.계좌이체는 한 계좌에서 현금이 인출된 후에 다른 계좌로 입금이 되는데, 현금이 인출되기 전에 다..

Database 2020.09.10

DDL과 DML 및 Delete와 Truncate문 비교

Oracle에서 용도에 따른 SQL문의 분류 및 각종 특징들(Delete와 Truncate 등)에 대해 정리해보겠습니다. 명령어의 분류DDL(데이터 정의어) : 테이블 생성과 조작. CREATE, ALTER, DROP, RENAMEDML(데이터 조작어) : 데이터의 조작. SELECT, INSERT, UPDATE, DELETEDCL(데이터 제어어) : 유저를 생성하고 권한을 제어하는 명령어. GRANT, REVOKETCL(트랜잭션 제어어) : 트랜잭션(Transaction)을 제어하는 명령어. Delete 와 Truncate 명령의 차이 Delete Table Truncate Table 특징 1) 삭제된 데이터를 Log에 저장. → 따라서 Rollback도 가능. 2) 원하는 특정 행(Row)를 지울 수..

Database 2020.09.09

정규화와 반정규화 및 대량 데이터에 따른 성능

정규화(Normalization) 특징불필요한 중복으로 인한 이상(Anomaly)현상을 방지하기위한 정규화는 데이터베이스 모델링에서 매우 중요한 프로세스이다. 이와 관련하여 로우체이닝(Row Chaining)과 로우마이그레이션(Row Migration), 파티셔닝(Partitioning) 및 반정규화에 대한 특징을 비교하며 이해해야 합니다. 1) 데이터 모델링을 하면서 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 2) 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것이다. 데이터의 중복속성을 제거하고 결..

Database 2020.09.08

Oracle 데이터베이스 관련 용어(개념)와 각종 규칙

Oracle 데이터베이스 관련 개념(Key 등)와 각종 규칙들(NULL연산, ROWNUM 등)에 대해 간략히 포스팅해보려고 합니다. DB관련 개념 정리1) 정규화(Normalization) : 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스.2) 기본키(Primary Key) : 테이블의 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼. 즉, NULL값과 중복된 값을 모두 허용하지 않음(기본키는 테이블당 하나의 제약만을 정의 가능)3) 고유키(Unique Key) : 중복된 값을 허용하지 않음. but Null값은 가질 수 있음. (헷갈리기 ㄴㄴ해)4) 외부키(외래키, Foreign Key) : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼. 참조하..

Database 2020.09.07

데이터 모델링의 3요소 및 엔티티, 속성의 분류

데이터 모델링의 3요소 1) 어떤 것(thing) : 엔티티(Entity Type = Entity Set = Entity)※엔티티의 단수(개별적인) 개념 : 인스턴스(Instance) = 어커런스(Occurence)- 각 인스턴스는 식별자(Identifiers)에 의해 구분이 돼야 하며, 반드시 속성이 포함돼 있어야 한다. 추가로, 한 개의 엔티티는 2개 이상의 속성, 2개 이상의 인스턴스를 가져야 함.- 다른 엔티티와 최소 1개 이상의 관계가 있어야 함.- 단, 예외적으로 관계엔티티(Associative Entity)의 경우는 주식별자 속성만 가지고 있어도 엔티티로 인정됨. 2) 어떤 것 간의 연관 : 관계(Relationship)ERD와 다르게 UML(Unified Modeling Language)에..

Database 2020.09.07

데이터 모델링과 스키마 구조

Oracle에 관한 학습을 하면서 'SQLD자격증' 취득이라는 목표를 설정하였는데, 공부하면서 정리했던 내용들을 순차적으로 포스팅하려고 합니다.데이터 모델링이란?? 1) 데이터 모델링은 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법이다.2) 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정3) 데이터베이스를 구축하기 위한 분석/설계의 과정4) 모델링은 3개의 특징(추상화, 단순화, 명확화)으로 요약할 수 있다. ① 추상화(모형화, 가설적)는 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미로 정리할 수 있다. 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것이다.  ② 단순화는 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해..

Database 2020.09.07

오라클 Database 19c(window) 설치 & 실행

오라클(Oracle)을 실습하면서 공부하기 위해 19c 버전을 다운받았었는데, 전체적인 설치 과정 및 실행(접속)까지 순서대로 포스팅해보겠습니다. Oracle Database 19c (window) 다운로드1) https://www.oracle.com 으로 접속합니다.  가장 보편화되어 사용되어지는 버전은 12c라고 알고 있는데, 저는 가장 최신버전인 19c(Window 환경)버전으로 다운로드했습니다.  2) 다운받은 zip파일의 압축을 풀고 setup파일 실행.(저는 C드라이브 밑에 OracleDatabase라는 이름의 폴더를 새로 만든후, 그 아래에 압축을 해제했습니다)단일 인스턴스 데이터베이스는 하나의 메모리에 하나의 DB가 있는 구조라고 합니다. '데스크톱 클래스'는 '서버 클래스'의 기능에서 몇..

Database 2020.03.08

MySQL 접속 에러 / ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

MySQL 접속 에러ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)로컬에서 root계정으로 MySQL접속을 시도했는데 DB Server에 접속되지 않는 에러가 발생했다.위의 에러를 해석해보면 'localhost'(10061). 즉, 로컬에서 MySQL서버에 연결(접속)할 수 없음.이라는 뜻인데, 사실 해당 에러를 한두 번 겪은 것이 아니었다. 보통 이럴 때는 이 에러를 단순하게 'root비밀번호가 틀렸다'로 이해했었는데, 결국은 MySQL을 재설치하면서 해결하곤 했다. (고통의 시간이었다...) 하지만 이번 경우는 비밀번호를 확실하게 적어 두었던 거라 틀림없었기 때문에 해결법을 찾아봤다. 이유가 무엇인고 하오니, DB연결이..

Database 2019.03.20