DB 102

트랜젝션(transaction)의 정의 및 특징

트랜젝션이란 -쪼갤 수 없는 업무 처리의 최소단위 - A가 B에게 돈 1000원을 주었다면, A는 -1000, B는 +1000이 되어야 한다. 한 사람만 돈을 얻거나 잃는 일은 있을 수 없다. 이러한 업무처리의 최소단위를 묶어주는 것이 트랜젝션의 역할이다. 커밋(commit)과 롤백(rollback) - 커밋 : 트랜잭션 처리가 정상적으로 된 경우 결과를 반영함 - 롤백 : 오류가 발생한 경우 모든 동작을 원래대로 되돌림 트랜젝션의 특징 1. 일관성 : 트랜잭션의 결과로 DB상태가 모순되지 않아야 한다. 2. 원자성 : 작업이 모두 실행되거나, 하나도 실행되지 않아야 한다. 3. 연속성 : 트랜잭션 결과는 영구적으로 보장한다 4. 고립성 : 트랜잭션 연산 중간결과에 다른 트랜잭션이 접근할 수 없다.

DB/[이론] 2022.02.14

데이터베이스 종류

계층형 - 폴더와 파일등의 계층 구조로 데이터를 저장하는 방식 - 하드디스크나 DVD파일시스템 - 가장 오래된 데이터베이스 - 프로세스 변경에 따른 데이터 구조 변경이 어려움 네트워크형 - 그래프 구조의 데이터베이스 - 다대다 관계를 유지하고 데이터의 연결을 위해 포인터를 사용한다 - ex) 관계형 데이터베이스 - 행과 열을 가지는 표 형식의 데이터를 저장하는 형태의 데이터베이스 객체 지향 데이터베이스 - 관계형 데이터베이스는 새로운 데이터타입 생성 및 확장, 복합 객체표현시 상호 관련된 엔티티 처리가 어려움 - 사용자 정의 데이터타입 지원 및 상속성 명세 가능 - 비정형 복합 정보의 모델링 가능 - 트랜젝션 처리, 동시처리, 백업 및 복구 등에 취약하여 많이 확대되지 못함 키 밸류 스토어(KVS) - ..

DB/[이론] 2022.02.14

[ERD] 속성, 관계

속성 1. 분해 여부에 따른 속성의 종류 - 단일 속성 : 하나의 의미로 구성된 것(회원ID, 이름) - 복합 속성 : 여러개의 의미가 있는 것(주소 시 군 구) - 다중값 속성 : 속성에 여러 값을 가질 수 있는 것 (상품리스트) 2. 특성에 따른 속성의 종류 - 기본 속성 : 본래의 속성(이름, 계좌번호, 주문일시) - 설계 속성 : 모델링 과정에서 발생되는 속성(상품코드, 지점코드) - 파생 속성 : 다른 속성에 의해 만들어지는 속성 (합계, 평균) ​ 관계 (1) 식별관계 : 기본키끼리 (2) 비식별관계 : 기본키---기본키아닌것

DB/[이론] 2022.02.14

3층 스키마

3층 스키마란 - 스키마란? : 데이터베이스의 구조와 제약조건에 대한 구체적인 명세 - 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고, 이들간의 관계를 정의한 ANSI표준 - 데이터베이스의 독립성을 확보하기 위한 방법 데이터베이스 독립성 1. 데이터베이스 독립성확보하면? (1) 데이터 복잡도증가 (2) 데이터 중복 제거 (3) 사용자 요구사항 변경에 따른 대응력 증가 (4) 관리 및 유지보수 비용절감 2. 독립성의 종류 (1) 논리적 독립성 : 응용프로그램에 영향을 주지 않고 논리적 구조를 변경할 수 있는 것. (2) 물리적 독립성 : 논리적 구조에 영향을 미치지 않고 물리적 구조를 변경할 수 있는 것. 스키마의 종류 1. 외부 스키마 (1) 사용자 관점, 업무상 관..

DB/[이론] 2022.02.14

데이터 모델링의 의미 및 주요특징

데이터 모델링의 의미 복잡한 현실세계에 존재하는 데이터(사람 사물 현상)들을 단순화하여 일정한 표기법으로 컴퓨터 세계의 데이터베이스로 옮기는 작업 데이터 모델링의 특징 - 추상화 : 현실세계를 간략하게 표현 - 단순화 : 누구나 쉽게 이해할 수 있도록 표현 - 명확성 : 명확하게 의미해석 필요 데이터 모델링의 단계 1. 개념적 모델링 (1) 현실세계에서 나타나는 정보 구조를 추상적으로 개념화 하는것 (2) 업무 전체에 대해서 데이터 모델링 수행 (3) 복잡하게 표현하지 않고 중요한 부분을 위주로 (4) 추상화 수준이 높고 포괄적인 수준 2. 논리적 모델링 (1) 사람의 이해를 위한 개념적 설계의결과를 데이터베이스 저장에 용이한 논리적 구조로 변환하는것 (2) 식별자 도출, 모든 릴레이션 정의, 속성과 키..

DB/[이론] 2022.02.14

mongodb 명령어

1. 용어 sql mongo db database database table collection row document column field 2. 특정 조건에 맞는 값 찾기 : db.collection.find({“column”:{“$parameter”:x”}}) parameter 설명 gt(e) 주어진 값 보다 큰값(같은 값) lt(e) 주어진 값 보다 작은값(같은 값) ne 주어진 값과 일치하지 않는 값 in 주어진 배열 안에 속하는 값 nin 주어진 배열안에 속하지 않는 값 3. 포함시킬 칼럼찾기 : db.collection.find({"column":a},{"column1":1,"column2":0}) 파라미터 설명 1 주어진 배열 안에 속하는 값 0 주어진 배열안에 속하지 않는 값 4. 정렬하..

DB/MONGODB 2021.08.10

[빅데이터분석기사] 부문별 데이터베이스 발전과정

1. 제조부문 (1) 실시간 기업(RTE)이 대표적 화두 (2) 제조부문 ERP(전사자원관리, Enterprise Resource Planning) 시스템 도입과 dw, crm, bi등 기술 적용 2. 유통부문 (1) KMS(Knowledge Management System)를 위한 별도의 백업시스템 3. 물류부문 (1) CALS(commerce at light speed) : 제품생산, 설계, 개발, 유통에 이르기 까지 제품라이프사이클 전반의 데이터를 통합 (2) port-MIS : 항만운영정보시스템 (3) KROIS : 철도운영정보시스템 4. 지리부문 (1) GIS(Geograpic Information System) : 지리정보시스템 (2) LBS(Location-Based System) : 위치정..

DB/[이론] 2021.04.14

데이터베이스 클러스터

정의 하나의 DB를 여러개의 서버상 구축(데이터 파티셔닝 : DB를 여러부분으로 분할) 데이터 통합시 성능, 가용성위해 DB차원의 파티셔닝 클러스터링 사용 장점 1. 병렬처리 : 빠른 데이터처리 검색 2. 고가용성 : 파티션에 장애생겨도 중단안됨 3. 선응향상 : 선형적 성능향상 리스크 공유 관점에서 구분 1. 무공유 (1) 완전히 분리된 데이터의 서브집합에 대한 소유권 갖음 (2) 각 데이터는 소유권 갖는 인스턴스가 처리 (3) 대부분 DB클러스터가 무공유 방식 (4) 장점 : 노드확장 제한없음 (5) 단점 : 별도의 폴트톨로런스 필요 2. 공유 (1) 각인스턴스는 모든 데이터에 접근 가능 (2) 데이터공유시 sah네트워크 필요 (3) 장점 : 폴트톨로런스 제공 (4) 단점 : 클러스터 커지면 병목현상..

DB/[이론] 2021.03.28

[ADP] CDC(Change Data Capture)

개념 1. DB내 데이터에 대한 변경 식별, 후속처리 자동화 2. 실시간 또는 근접 실시간 데이터 통합을 기반으로 DW구축 3. 스토리지 ~ 어플리케이션 등 다양한 계층, 다양한 기술로 구현 구현방법 1. time stamp on row : 변경이 반드시 인지되어야 하는 테이블 내 마지막 변경 시점을 기록하는 타임스템프 칼럼두고 변경 식별 2. version number on row : 변경이 인지되어야 하는 테이블 해당 레코드의 버전기록 칼럼을 두고 식별 3. status on rows : 1, 2의 보안용도. 데이터변경여부를 T/F로 저장 4. Time/version/status on rows : 1, 2, 3 모두 사용 5. triggers on tables : 트리거 이용하여 변경, 배포 6. e..

DB/[이론] 2021.03.22

[ADP] 분야별 데이터베이스

1. ERP : 전사적 자원관리. 인사, 재무 생산 등의 경영자원을 하나의 통합 시스템으로 구축 2. BI : 기업의 데이터를 정리해서 의사결정에 활용하는 프로세스 3. RTE : 실시간 기업의 새로운 경영시스템, 회사 전부분의 정보를 하나로 통합 4. EAI : 기업내 상호 연관된 모든 어플리케이션 연동 (중앙집중관리) 5. EAW : DW를 전사적 차원으로 확장 6. KMS : 지식관리시스템(기업경영을 지식이라는 관점에서 조명) 7. RFID : 주파수를 이용해 식별

DB/[이론] 2021.03.19

[ADP] OLTP와 OLAP

OLTP - 호스트 컴퓨터와 온라인으로 접속된 여러 단말기 간의 처리 형태. - 호스트 컴퓨터가 데이터베이스를 엑세스하고 바로 처리결과 돌려줌. - 트랜젝션 중심 OLAP - 비즈니스 관점에서 쉽고 빠르게 데이터에 접근해서 의사결정에 활용할 수 있는 정보를 얻을 수 있게 해주는 기술 - 중간 매개자나 매개체 없이 대화식으로 정보를 분석하고 의사결정에 활용. 다차원 데이터 대화식 분석 - OLAP의 탐색기법

DB/[이론] 2021.03.16

[SQL]sql코테전에 보기

특정 조건 sick이라는 조건과 같은것 SELECT ANIMAL_ID,NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION is "Sick" 특정 조건 아닌것 SELECT ANIMAL_ID,NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION NOT like "Aged" 정렬 1. 오름차순 SELECT ANIMAL_ID,NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID 2. 내림차순 SELECT ANIMAL_ID,NAME,DATETIME FROM ANIMAL_INS ORDER BY NAME,DATETIME DESC 3. 상위 1개 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 최댓값 ..

DB/SQL 2021.03.06

파이썬 SQL연동

파이썬과 mysql연동 파이썬과 mysql을 연동해서 파이썬에서 데이터베이스에 접근하고 쿼리문등을 실행해 본다. 코드 1. 필요 라이브러리 다운 from sqlalchemy import create_engine import pymysql pymysql.install_as_MySQLdb() 2. 파라미터 설정 # DB이름 설정 db_name = '' # mysql 아이디 db_id = '개인id' # mysql db ip (로컬이면 localhost) db_ip = 'localhost' # mysql db 패스워드 db_passwd = 'pw' # db port db_port = '3306' * DB이름? * 개인 id? mysql command line을 실행하고 터미널에서 아래와 같이 입력하면 user..

DB/SQL 2021.02.10

[SQL] DDL (create drop alter)

CREATE 1. 테이블 생성 creat table (테이블이름) ( (컬럼이름) (타입)(글자수) (옵션) ); create table dept( deptno varchar2(4) primary key, deptname varchar2(20); ); create table emp ( empno number(10), ename varchar2(20), sal number(10,2) default 0, --소수점 2째자리, 기본값은 0 constraint emppk primary key(empno), --empno를 기본키로 constraint deptfk foreign key (deptno) --deptno를 외래키로 references dept(deptno), on delete cascade --dep..

DB/SQL 2020.07.11

[SQL] 내장함수

1. 문자형 함수 함수 설명 acsii(문자) 문자,숫자를 acsii 코드값으로 char(acsii 코드값) acsii 코드값을 문자로 substr(문자열,m,n) 문자열 m부터 n개 자르기 concat(문자열1,문자열2) 문자열1||문자열2 문자열 합치기 lower(문자열) 소문자로 upper(문자열) 대문자로 length(문자열) or len(문자열) 문자열 길이 ltrim(문자열,지정문자) 왼쪽에 (반복되는)지정문자 삭제, or 왼쪽 공백삭제 rtrim(문자열,지정문자) 오른쪽에 (반복되는)지정문자 삭제, or 오른쪽 공백삭제 trim 양쪽에 반복되는 지정문자 삭제 or 양쪽공백삭제 2. 날짜형 함수 함수 설명 sysdate 오늘의 날짜를 날짜 타입으로 extact('year' or 'month' ..

DB/SQL 2020.07.11