'CS/Database' 카테고리의 글 목록
본문 바로가기
728x90

CS/Database19

데이터 마이닝(Data Minnig) 데이터 마이닝(Data Minnig) 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술 데이터 마이닝은 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 기법 데이터 마이닝은 데이터의 숨겨진 정보를 찾아내어 이를 기반으로 서비스와 제품에 도입하는 과정 통계분석은 가설이나 가정에 따른 분석, 검증을 하지만 데이터 마이닝은 수리 알고리즘을 활용하여 대규모 데이터에서 의미 있는 정보를 찾아낸다. 데이터 마이닝 절차 목적 설정 -> 데이터 준비 -> 가공 -> 마이닝 기법 적용 -> 정보 검증 데이터 마이닝 주요 기법 덱스트 마이닝 대량의 텍스트 데이터로부터 패턴 또는 관계를 추출하여 의미 있는 정보를 찾아내는 기법 304745비정형/반정형 데이터.. 2022. 6. 21.
NoSQL (Not Only SQL) NoSQL (Not Only SQL) NoSQL은 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS 특성 특성(BASE) 설명 Basically Available 언제든지 데이터는 접근할 수 있어야 하는 속성 분산 시스템이기 때문에 항상 가용성 중시 Soft-State 노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서 전송된 정보를 통해 결정되는 속성 특정 시점에서는 데이터의 일관성이 보장되지 않음 Eventually Consistency 일정 시간이 지나면 데이터의 일관성이 유지되는 속성 일관성을 중시하고 지향 유형 유형 설명 Key-Value Store .. 2022. 6. 17.
데이터 모델의 구성요소 데이터 모델의 구성요소 개체 데이터 모델에서는 연산(Operation)을 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타낸다. 논리 데이터 모델에서는 구조(Structure)를 어떻게 나타낼 것인지 표현한다. 제약 조건(Constraint)은 데이터 무결성 유지를 위한 DB의 보편적 방법으로 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체 무결겅과 참조 무결성 등이 있다. 연산 (Operation) 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 릴레이션을 조작하기 위한 관계 연산을 나타낸다.(Select, Project, Join, Division) 구조 (Structure) 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입들 간의 관계 데이터 구조 및 .. 2022. 6. 14.
비 정규화 / 반 정규화(De-Normalization) 비 정규화 / 반 정규화(De-Normalization)개념 비 정규화는 정규화된 엔티티, 속성, 관계에 대해 성늘 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법 비 정규화, 역 정규화라고도 불린다. 특징 장점 비 정규화된 데이터 구조는 성능 향상과 괄리의 효울성이 증가 단점 데이터의 일관성 및 정합석 저하 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음 기법 테이블 테이블 병합 1:1 관계, 1:N 관계를 통합하여 조인 횟수를 줄여 성능을 향상 슈퍼타입/서브타입 테이블 통합을 통해 성능 향상 테이블 분할 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 한다. 종류 설명 수평분할 테이블 분할에 레코드 기준으로 활용 수직 분할 하나.. 2022. 6. 10.
Oracle 권한 및 역할 권한 허가 - GRANT GRANT Privileges [(Column[,...n]])] [,...] [ON 객체] TO {사용자 | 롤 | PUBLIC [,...n]} [WITH GRANT OPTION] Privileges - 허가할 권한 지정. REFFERNCES는 외래키 제약조건을 생성하기 위한 참조 허가 권한. REFFERNCES(컬럼이름) 형태로 사용 (아래 표 참고) Column - 사용 권한을 부여할 테이블의 열 이름을 지정. 꼭 ()안에 표시. 권한을 허가받은 사용자만이 대상 테이블의 지정된 Column 사용 가능 객체 - 사용 권한을 부여할 객체를 지정. 테이블이나 뷰 등의 이름이 온다. TO 사용자 - 사용자나 권한의 묶음인 ROLE에 권한을 추가할 수 있다. PUBLIC은 모든 사용자.. 2022. 1. 21.
트랜잭션 트랜잭션 DBMS에서 데이터를 다루는 논리적인 작업의 단위(데이터를 읽거나 쓰는 프로세스) 트랜잭션 특징 ( ACID 성질) 트랜잭션은 데이터베이스의 무결성을 유지하기 위해 원자성, 일관성, 고립성, 지속성을 갖는다. Atomicity 원자성 all or nothing 트랜잭션에 포함된 작업은 전부 수행되거나 아니면 전부 수행되지 않아야 한다. 트랜잭션이 원자처럼 더는 쪼개지지 않는 하나의 단위처럼 동작해야 한다. Cinsistency 일관성 트랜잭션을 수행하기 전이나 수행한 후나 데이터베이스는 항상 일관된 상채를 유지해야 한다. Isolation 고립성 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경중인 데이터 값을 훼손하는 일이 없어야 한다. 다른 트랜잭션의 방해를 받지 않고 독립적으로 수행 Du.. 2022. 1. 14.
함수 종속성 함수 종속성(normalization) userId(pk) -> user_Address 와 같이 왼쪽 속성의 모든 값에 대하여 오른쪽 속성의 값이 유일하게 결정될 때 함수적으로 종속된다고 한다. 즉, 릴레이션 속성간의 함수적으로 종속하는 성질을 뜻한다. 릴레이션 속성간의 종속성을 파악해 릴레이션을 분리해 이상현상이 발생하지 않게 하는것이 중요하다. 함수 종속성 결정자(릴레이션의 기본키) 릴레이션의 기본키가 함수 종속성의 결정자가 된다. 기본키를 알아야 정규화 과정을 하기 수월하다. 함수 종속의 성질 R{X, Y, Z} augmentation: 만약 X→YX→Y이면, XZ→YZXZ→YZ이다. transitivity: 만약 X→YX→Y이고 Y→ZY→Z이면, X→ZX→Z이다. reflexivity: 만약 YY.. 2022. 1. 7.
DB 정규화 정규화 이상현상이 발생하는 테이블을 수정하여 이상현상을 최소화로 만드는 과정 정규화를 하기 위해 테이블의 기본키와 함수 종속성을 파악해야 한다. 이상현상의 개념 잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상현상이 일어난다. 테이블을 독립적으로 나누지 않고 하나의 큰 테이블로 작성시 일어나는 이상현상이다. 삭제이상(Delectoin anomaly) 투플 삭제 시 같이 저장된 다른 정보가지 연쇄적으로 삭제되는 현상 -> 연쇄삭제 문제발생 삽입이상(insertion anomaly) 투플 사입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 션상 -> NULL 값 문제 발생 수정이상(update anomaly) 투플 수정시 중복으로 저장된 뎅터 일부만 수정되어 데이터의 .. 2021. 12. 31.
ER다이어그램 데이터 모델링에서 개념적 모델링 단계에서 사용되는 다이어그램으로 개체(Entity)와 속성(Attribute)의 관계를 표현한다. ER -> ERD(IE) ER 모델을 관계 데이터 모델로 개체 타입 약한 개체 타입에 강한 개체 타입의 기본키를 외래키로 관계 타입 1:1관계 개체가 가진 유형에 따라 다른 개체의 기본키를 외래키로 1:N관계 N위치 개체에 1위치 개체의 기본키를 외래키로 N:M관계 별도의 릴레이션으로 생성해 N위치 개체, M위치 개체의 각각의 기본키를 외래키로 모델의 차수가 3개 이상인 관계 별도의 릴레이션으로 생성해 각각의 기본키를 외래키로 가져와 복합키로 사용 다중값 속성 user 의 hobby 처럼 여러개의 속성을 가지면 그 속성을 따로 독립적인 릴레이션을 만들어 저장 2021. 12. 24.
데이터 모델링 데이터모델링이란 소프트웨어를 개발하기위해 데이터 모델링이 먼저 되어야한다. 데이터 모델링은 소프트웨어에 필요한 복잡한 데이터를 단순화하고 추상화시켜 데이터베이스화 하는 과정 데이터베이스 생명주기 데이터베이스의 생명주기와 소프트웨어 개발의 생명주기는 거의 유사하다. 큰 차이는 테스트 후 운영 및 유지보수 인 것이다. 데이터베이스 생명주기 (database life cycle) 요구사항 수집 및 분석, 설계, 구현, 운영, 감시 및 개선 소프트웨어 개발 생명주기(software life cycle) 요구사항 수집 및 분석, 설계, 구현, 테스트, 유지보수 요구사항 수집 및 분석 사용자, 개발자, 의뢰인의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하며, 정확하게 요구사항을 정리 설계 설계는 3가지.. 2021. 12. 17.
ORACLE SQL 정리 - 2 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) NULL 값 처리 NULL값은 아직 지정되지 않은 값으로 0, ' ' 등과 다른 특별한 값 그래서 비교 연산자로 비교가 불가능. 집계 함수 사용시 주의점 NULL + 숫자 = NULL 집계 함수 계산시 NULL이 포함된 행을 예외 NULL 값을 확인하는 방법 - IS NULL, IS NOT NULL where IS NULL; NVL(속성,값) : NULL 을 다른 값으로 대치 혹은 연산 후 다른 '값'으로 출력 (AS와 비슷) ROWNUM 오라클 내부적으로 생성되는 가상 컬럼으로 SQL 조회 결과의 순번을 나타낸다. 부속질의.. 2021. 11. 12.
ORACLE SQL 정리 - 1 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) SQL 기능에 따른 분류 DDL (데이터 정의어) CREATE, ALTER, DROP 테이블이나 관계의 구조를 생성, 변경, 제거 DML(데이터 조작어) SELECT, INSERT, DELETE, UPDATE 테이블에 데이터를 검색, 삽입, 삭제, 수정 DCL(데이터 제어어) GRANT, REVOKE 데이터의 사용 권한을 관리 DDL CREATE TABLE 테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령 PRIMARY KEY는 기본키, FOREIGN KEY 는 외래키 기본 문법 CR.. 2021. 11. 5.
관계대수 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) 관계대수 관계대수 relational algebra 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어 관계대수와 관계해석 관계대수 : 어떤 데이터를 어떻게 찾는지에 대한 처리 절차를 명시하는 절차적인 언어이며, DBMS 내부의 처리 언어로 사용된다 관계해석 : 어떤 데이터를 찾는지 명시하는 선언적인 언어로 관계대수와 함께 관계 DBMS 의 표준 언어인 SQL 의 이론적인 기반을 제공한다 -> 관계대수와 관계해석은 모두 관계 데이터 모델의 중요한 언어이며 실제 동일한 표현 .. 2021. 10. 29.
무결성 제약조건 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) 키 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합 릴레이션은 중복된 투플을 허용하지 않기 때문에 각각의 투플에 포함된 속성들 중 어느 것은 값이 달라야 한다. 즉 키가 되는 속성, 집합은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다. 키는 릴레이션 간의 관계를 맺는 데도 사용된다. 슈퍼키 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합 (식별할 수 있는 값은 모두 슈퍼키가 될 수 있다.) 후보키 투플을 유일하게 식별할 수 있는 속성의 최소 집합 (2개 이상의 속성으로 이루어진 키는 복합키라.. 2021. 10. 22.
데이터베이스 시스템 구성 및 구조 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) DB 기본 지식 데이터:관찰의 결과로 나타난 실제 값 정보:데이터에 의미를 부여한 것 지식:사물이나 현상에 대한 이해 데이터베이스:필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템 DBMS 사용자와 데이터베이스를 연결시켜 주는 소프트웨어 데이터베이스 데이터를 모아 둔 토대 데이터 모델 데이터가 저장되는 기법에 관한 내용 DBMS가 설치되어 데이터를 가진 쪽을서버, 외부에서 데이터 요청하는 쪽을 클라이언트 데이터베이스 언어 SQL DDL ( Data Definition La.. 2021. 10. 15.
Oracle, MySQL, PostgreSQL 차이점 이름 Oracle Mysql PostgreSql 비용 유료(비싸다) 무료(상업은 유로) 무료 종류 관계형 DBMS(RDBMS) 관계형 DBMS(RDBMS) 객체 관계형 DBMS(ODBMS) 장점 최고의 성능, 고성능 트랜잭션 처리를 제공, SQL문을 실행하는 가장 효율적인 방법을 선택한다.(데이블과 인덱스를 분석) 무료로 사용이 가능하고, top n개의 레코드를 가지고 오는 케이스에 특화 무료로 사용이 가능하고, 다양한 join 방법을 제공 처리 속도를 빠르게 하기 위해 여러 CPU를 활용하여 쿼리를 실행 데이터베이스 *클러스터 백업 기능을 제공 고도로 확장 가능, 임시 테이블과 구체화 된 뷰를 제공 단점 비싸다 Nested Loop Join만 지원, 복잡한 알고리즘은 가급적 지원하지 않는다 문자열 비교.. 2021. 10. 8.
macOS) Oracle DB 권한 설정 및 부여 실행중인 도커 확인 $ docker ps -a 도커 start $ docker start oracle12c 오라클 쉘 접속 (sqlplus) $ docker exec -it oracle12c bash -c "source /home/oracle/.bashrc; sqlplus /nolog1 로그인 SQL> conn SYS / as SYSDBA Enter password : Oracle_db1 계정 생성 및 권한 부여 계정 규칙 제한 풀기 $ alter session set "_ORACLE_SCRIPT"=true; 계정생성 (test1 / 1234) SQL> create user test1 identified by 1234; 권한 추가 SQL> grant connect, resource, dba to test.. 2021. 10. 1.
macOS) Docker, Oracle DB설치, 설정 (ORA-12547 오류 해결) 및 user 생성, user 권한 부여 oracle12c 를 임시로 사용하고 추후에 18c로 변경할 예정. terminal 에서 도커 로그인 $ docker login docker hub oracle database 위 링크에서 docker pull $ docker pull store/oracle/database-enterprise:12.2.0.1-slim run docker image $ docker run --name oracle12c -d -p 5050:22 -p 5051:1521 store/oracle/database-enterprise:12.2.0.1-slim docker start $ docker start oracle12c start sql developer DBeaver The default password to connect .. 2021. 9. 17.
ORM(Object Relational Mapping)이란 ORM이란 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 객체를 통해 간접적으로 데이터베이스를 조작 Object Relational Mapping의 약자로 관계형 데이터베이스 관리 시스템(RDBMS(Relational Database Management System))와 객체 지향 프로그래밍 언어(OOP(Object Oriented Programming))간 불일치가 존재(클래스→테이블)한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결하며 자동으로 연결(Mapping)해준다. 즉, SQL문을 짤 필요없이 객체(Class)를 통해 간접적으로 데이터베이스를 조작할 수 있다. 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 ex) 클래스로 스키마를 매핑하고 메소드로 .. 2021. 8. 13.
728x90