Computer Science/데이터베이스
-
[MySQL] 격리 수준(Isolation Level)Computer Science/데이터베이스 2021. 3. 24. 16:34
예전에 작성한 글에서 데이터베이스의 격리 수준에 대해서 간단하게 정리한 글을 작성한 적이 있습니다. JPA를 공부하면서 데이터베이스 격리 수준이라는 개념이 또 한번 등장해서 이참에 격리 수준이 도대체 무엇인지 공부하고 정리해보는 시간을 가져볼까합니다. 격리 수준이란? 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것입니다. 격리 수준은 다음과 같이 크게 4가지로 나뉩니다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 이 중에서 READ UNCOMMITTED는 일반적인 DB에서 잘 사용되지 않고, SERIALIZABLE은 동시성이 중요한 DB에서 거의 사용되지..
-
데이터베이스 격리수준Computer Science/데이터베이스 2020. 9. 24. 01:16
격리수준이란? 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것 Oracle 트랜잭션 A가 시작된 후 update 쿼리를 날린다. 이 타이밍에 트랜잭션 B도 시작되고 select 쿼리를 날린다. 이때 트랜잭션 B의 select 쿼리의 결과는 장보고가 아닌 임꺽정이 나온다. (변경이 적용 안됨) 왜냐하면 Oracle은 데이터를 읽을 때 커밋된 것만 읽는다. (Read Commit) 트랜잭션이 종료되어 commit을 날리기 전까지 select 결과는 위와 같다. commit이 된 후 트랜잭션 B에서 select 쿼리를 날리면 드디어 장보고가 나온다. Oracle에서 데이터의 C..
-
[Oracle] Sequence 초기화 하는법Computer Science/데이터베이스 2020. 7. 18. 19:02
https://stackoverflow.com/questions/51470/how-do-i-reset-a-sequence-in-oracle How do I reset a sequence in Oracle? In PostgreSQL, I can do something like this: ALTER SEQUENCE serial RESTART WITH 0; Is there an Oracle equivalent? stackoverflow.com 오라클 DB의 인덱스를 만지다가 다음과 같은 오류를 만나게 되었습니다. sequence seq_board.nextval goes below minvalue and cannot be instantiated 평상시에 MySQL을 주로 써서 문법에 익숙치 않은 탓에 도저히 혼..
-
[MySQL] auto_increment 값 초기화하기Computer Science/데이터베이스 2019. 11. 9. 01:14
임의의 DB의 테이블에 인덱스 값이 1,2,3,4 인 4개의 레코드가 있다고 가정했을때, phpmyadmin이나 쿼리를 사용해서 4번 인덱스의 레코드를 삭제하면 그 다음에 레코드를 생성시 4번이 아닌 5번으로 생성되는 경우가 발생한다. (1,2,3,5 이런식으로...) 이런 경우를 막기 위해서 크게 'phpmyadmin의 테이블 작업' 혹은 '쿼리'를 이용하는 경우 두가지가 있다. 1. phpmyadmin의 테이블 작업 위의 예시에서 인덱스 4번의 레코드를 삭제했으므로 현재 AUTO_INCREMENT 5로 자동으로 지정되어 있을 것이다. 이를 4로 고쳐주면 원하는 결과인 인덱스가 순서대로 1,2,3,4 로 설정되는 것을 확인할 수 있다. 이런식으로 상황에 맞게끔 AUTO_INCREMENT 값을 설정해주면..
-
관계형 DB(RDBMS) VS 비관계형 DB(No-SQL)Computer Science/데이터베이스 2019. 10. 2. 18:58
관계형 DB(RDBMS) 비관계형 DB(No-SQL) 처리데이터 정형 데이터 정형, 비정형(반정형 포함) 데이터 대용량 데이터 대용량 처리 시 성능 저하 대용량 데이터 처리 지원 스키마 미리 정해진 스키마 존재 스키마가 없거나 변경이 자유로움 트랜잭션 트랜잭션을 통해 일관성 유지 보장 트랜잭션을 일부만 지원하여 일관성 유지를 보장하기 어려움 검색기능 조인 등의 복잡한 검색기능 제공 단순한 데이터 검색기능 제공 확장성 클리스터 환경에서 적합하지 않음 클리스터 환경에 적합함 라이선스 고가의 라이선스 비용 오픈 소스 대표 사례 Oracle, MySQL, MS-SQL 등 카산드라, 몽고DB, H베이스 등 RDBMS가 적합하지 않은 새로운 환경에서 선택의 폭을 넓히기 위한 대안으로 No-SQL을 이해하는 것이 바..
-
릴레이션, 키, 무결성 제약조건Computer Science/데이터베이스 2018. 10. 16. 14:28
릴레이션 용어 릴레이션 : 행과 열로 구성된 테이블스키마(내포) : 릴레이션에 담길 정보 정의릴레이션 인스턴스(외연) : 릴레이션 스키마에 실제로 저장된 데이터의 집합릴레이션 차수와 카디날리티 : 속성의 수/튜플의 수도메인 : 속성이 가질 수 있는 값의 집합튜플 : 릴레이션 인스턴스 각각의 행속성 : 릴레이션 스키마의 각각의 열 릴레이션의 특징속성은 단일값(원자값)을 가진다.속성은 서로 다른 이름을 가진다.한 속성의 값은 모두 같은 도메인 값을 가진다.속성의 순서는 상관없다.릴레이션 내의 중복된 튜플은 허용하지 않는다.튜플의 순서는 상관없다.키(KEY) 키는 릴레이션에서 특정 튜플을 식별할 때 사용하는 속성 혹은 속성의 집합이다.키는 각 릴레이션의 튜플을 유일하게 식별하는 장치이며 동시에 릴레이션간의 관..
-
데이터베이스 시스템Computer Science/데이터베이스 2018. 10. 5. 17:27
데이터베이스(Database)는 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것을 말한다. 데이터베이스의 개념은 네 가지로 설명할 수 있다. 통합된 데이터 : 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터를 말한다. 저장된 데이터 : 문서로 저장된 데이터가 아닌 컴퓨터 저장장치에 저장된 데이터를 말한다. 운영 데이터 : 업무 등 조직의 목적을 위해 사용되는 데이터를 말한다. 공용 데이터 : 공동으로 사용되는 데이터를 말한다. 특징 또한 네 가지로 설명할 수 있는데 실시간 접근성 : 실시간으로 서비스를 제공한다. 계속적인 변화 : 삽입,삭제,수정 등의 작업으로 데이터가 계속 바뀐다. 동시(병행) 공유 : 여러 사용자에게 동시에 공유된다. 내용에 따른..