트랜잭션이란? 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위. 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 Commit 되거나 Rollback 되어야 합니다. 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위해서죠. 트랜잭션 특성 (ACID) 트랜잭션은 아래 4가지 특성을 가집니다. Atomicity(원자성) 트랜잭션의 연산은 DB에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 합니다. Consistency(일관성) 트랜잭션 실행을 성공적으로 ..
객체 관계 매핑(Object-relational mapping; ORM)은 관계형 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 자동으로 매핑(연결)해주는 프로그래밍 기법을 말합니다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기에 객체 모델과 관계형 모델 간의 불일치가 생기게 됩니다. 1. 세분성(Granularity) 데이터베이스의 테이블수 보다 더 많은 클래스 객체 모델이 있을 수 있기 때문에 생기는 불일치 문제입니다. 객체 모델이 관계형 모델보다 더 세분화되어있기 때문입니다. 2. 상속성(Inheritance) 관계형 데이터 베이스에 상속의 개념이 없어 생기는 불일치 문제입니다. 단순히 데이터 베이스 칼럼과 클래스 필드를 매칭 하는 것은 ..
우분투를 이용한 리눅스 환경에서 MySQL을 설치하는 방법을 다룹니다. 버추얼 박스 우분투 가상 머신에서 진행합니다. MySQL을 설치하기 위해 패키지 관리자가 최신이어야 합니다. 아래 명령어를 입력합니다. $ sudo apt update 업데이트가 완료되었다면 이제 MySQL을 설치해줍니다. $ sudo apt install mysql-server 명령어를 입력하면 설치할 패키지 목록과 디스크 용량을 보여주며 설치를 계속할지 묻습니다. 엔터를 눌러 진행합니다. 이어서 보안설정을 합니다. 불분명한 외부 접속을 막기 위해서 설정해주는 것이 좋습니다. $ sudo mysql_secure_installation 먼저 비밀번호 플러그인을 설치할지 묻습니다. 이 플러그인은 모든 비밀번호가 특정 규칙을 준수하도록 ..
SQL 삽입(SQL Injection)은 보안상의 취약점을 이용해 임의의 SQL 문을 실행시켜 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위를 말한다. SQL Injection 이란? (SQL 삽입 공격) 1. SQL Injection 1.1 개요 SQL Injection SQL Injection 이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작 noirstar.tistory.com [Database] SQL Injection - 개념, 공격 방법, 방어 방법 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 공격 기법웹 애플리케이..
Oracle 8i부터 대용량 데이터를 저장하기 위한 LOB(Large Object) 타입이 등장했습니다. 비정형데이터나 반정형데이터를 저장하거나 조작하는데에 유용합니다. [DB]정형 데이터,비정형 데이터와 반정형 데이터 데이터를 수집하고 분석하는 것이 일상인 빅데이터 시대 데이터의 중요성은 나날히 커져가는 듯 합니다. 이번글에서는 데이터의 기초, 데이터의 형태에 대해서 작성해 보도록 하겠습니다. 데이 munak.tistory.com 그 종류는 아래와 같습니다. BLOB 바이너리 데이터 : 모든 종류의 데이터를 바이너리 형식으로 저장. 일반적으로 이미지, 오디오 및 비디오와 같은 멀티미디어 데이터에 사용. CLOB 문자 집합 : 대형 텍스트 데이터 저장 NCLOB 국가별 문자 집합 : Multi-byte ..
데이터를 수집하고 분석하는 것이 일상인 빅데이터 시대, 데이터의 중요성은 나날히 커져가는 듯 합니다. 이번글에서는 데이터의 기초, 데이터의 형태에 대해서 작성해 보도록 하겠습니다. 데이터는 형태에 따라 정형/비정형/반정형 데이터로 분류할 수 있습니다. 정형데이터 (Structured Data) 정형 데이터는 미리 정해 놓은 형식과 구조, 즉 규칙(Rule)에 따라 저장되었으며, 그 의미가 파악하기 쉬운 데이터들을 말합니다. 예로 이름, 나이, 주민등록번호와 같은 짧은 숫자나 문자를 들 수 있습니다. 이름 그대로 정형화 되어있기 때문에 쉽게 검색 및 선택, 갱신 등의 연산을 수행할 수 있습니다. 비정형 데이터 (Unstructured Data) 비정형 데이터는 동영상 파일, 오디오 파일, 사진, 보고서 등..