Computer Science/Database19 [NoSQL] NoSQL의 개념과 특징, 사례 (RDBMS와 비교) 1. 개념 원래는 Non-SQL 또는 Non-Relational 데이터베이스 종류를 지칭하기 위해 생긴 용어이다. 하지만, IT 업계 전반에 걸쳐 SQL의 활용도가 높기 때문에 NoSQL 데이터베이스인데도 오히려 SQL을 지원하는 경우가 많아지고 있다. 이 때문에 현재는 Not-only SQL의 의미로 쓰이는 경우도 있다. RDBMS의 한계점을 각 NoSQL마다의 해결책을 제시하고 있어 어떤 속성을 가져야 NoSQL이다라고 지칭할 수 없다. 2. 특징 2.1 RDBMS와 비교한 장점 데이터 형식이 자유롭다. * 데이터 타입 * 데이터 길이, 크기 RDBMS에서 데이터의 형식이 테이블로 정해져 있기 때문에 데이터를 Java의 객체 모델에 연결해서 표현하기 힘든 문제(Object-Relation Impeda.. 2023. 2. 6. [Database] ORM(Object Relation Mapping) 1. ORM 개념 이해 JDBC에서 ResultSet과 POJO class를 매핑하는 코드를 매번 짜는 것이 불편해서 만들어진 기술(Library)을 ORM(Object-Relational Mapping)이라고 한다. 객체와 Relational Model(관계형 데이터베이스 모델)을 매핑할 수 있는 기능을 갖고 있다. 하나의 테이블이 하나의 Java Class에 해당하고, FK와 같은 부가적인 기능은 함수로 제공한다. Hibernate로 대표되는 현대 ORM은 단순히 데이터 매핑 뿐만 아니라 데이터의 캐시, 세션, 라이프사이클 관리 기능까지 더해져서 그 기능이 방대하다. 2. JPA ORM의 유용성이 입증되고 나니 Hibernate, MyBatis, TopLink, CoCobase 등 ORM을 구현하는 .. 2023. 1. 24. [Database] JDBC - Prepared Statement, CallableStatement 1. PreparedStatement Statement의 subinterface이며, parameterized query를 사용할 때 활용한다. 변수를 사용할 수 있기 때문에 Statement 종류 중 가장 많이 활용된다. 또한, 여러 종류의 쿼리를 사용하지만 컴파일은 한 번만 하므로 성능상 이득이 있다. 쿼리에서 parameterized하고 싶은 부분을 '?' (물음표)로 작성하고, 해당 부분에 들어갈 파라미터는 PreparedStatement의 함수를 이용해서 세탕한다. 예) "insert into table value(?, ?)" PreparedStatement 주요 메소드 PreparedStatement에는 Statement의 인터페이스를 모두 구현한다. public void setInt(int .. 2023. 1. 19. [Database] JDBC - Statement, ResultSet 1. Statement Statement를 이용해서 실제 수행할 쿼리를 작성할 수 있다. 수행 결과를 ResultSet 객체로 받아오고, 정적 쿼리를 작성할 수 있다. Statement 주요 메소드 ResultSet executeQuery(string sql) SQL을 수행하고 ResultSet을 받아온다. 결과를 받아오기 때문에 주로 SELECT문 작성 시 사용 int executeUpdate(string sql) INSERT, UPDATE, DELETE 또는 DDL 등 결과를 받아오지 않는 SQL 작성 시 사용 return 값은 변경사항이 적용된 row의 수이다. 결과가 없다면, 0을 리턴 boolean execute(string sql) 여러 개의 결과를 얻어오는 SQL문 작성 시 사용 첫 번째 결.. 2023. 1. 17. [Database] JDBC - DriverManager, Connection (MySQL 접속) 1. Driver Manager 개념 User와 Driver 사이의 인터페이스를 담당. Driver의 이용가능 여부, Database와 Driver사이의 Connection을 관리한다. Driver의 등록/해제, Connection의 연결/해제를 관리한다. Driver의 Register가 반드시 성공해야 DB와 상호작용을 할 수 있다. 1.1 Driver Manager로 MySQL 접속 과거에는 클래스 로딩을 위하여 'Class.forName()'으로 해당 클래스를 클래스 패스에서 찾아서 클래스 로더가 로딩할 수 있도록 했다. 이런 방식으로 클래스 로딩이 되어야 Driver Manager가 표준 인터페이스로 메소드를 호출할 때, 해당 JDBC 드라이버의 구현체로 연결될 수 있었다. 최신 버전에서는 Jav.. 2023. 1. 13. 이전 1 2 3 4 다음