Hi. I harped on the previous three courses regarding how to design and implement transactional and analytical information systems, usage relation and big data and a sequence technologies, help you to improve your professional performance. During the next four weeks, you will face several problems and you will be able to propose and justify your solutions. Remember to take into account the response time, amount and type of information and its processing. This will give you the tips to know what kind of information system is and with wide architecture and technologies, it is conveniently implemented. Your proposal must conform to where it is requested, no more nor less. Let us start with a use case of this week. Check the concepts of course three. Data-intensive applications store data so that they, or another application, can find it again later in a database. These applications put the result of an expensive operation on cache memory to speed up reads. They allow users to search data by keyword or filter it in various ways. They can send a message to another process to be handled asynchronously by stream processing and periodically crunch a large amount of accumulated data through batch processing. An example of a data-intensive application can be an online gaming experience. This application is assigned to manage several thousand concurrent users and can scale out at several points as needed. A data-intensive application should be reliable, scalable and maintainable even in the case of an increment of workload. Reliability is an important characteristic of data-intensive applications. Reliability is when the system should continue to work correctly even in the face of adversity. The application performs functions expected by the user. It can tolerate user mistakes or the execution of software in unexpected ways. Its performance is good enough for the required use case. Under the expected load and data volume, the system prevents any unauthorized access. In the case of scalability, as the system grows in data volume, traffic volume or complexity, there should be reasonable ways of dealing with that growth. Scalability is a system's ability to cope with increasing load. Discussing scalability means considering questions like, if the system grows in a particular way, what are our options for coping with the growth? How can we add computing resources to handle the additional load? A data-intensive application should be maintainable. I mean, overtime, many different people will work on the system, engineering and operations, both maintaining current behavior and adapting the system to new use cases, and they should all be able to work on it productively. The company with best readings requires a data-intensive application that can help to support some of the services involved in an online bookstore and improve their book sales by automatizing the information they actually have on a spreadsheet. In order to sell the books, the store has registered information regarding its customers such as first name, last name, email, phone and address. In order to place orders with publishers and maintain their book inventory, your best readings also has a store on its spreadsheet, some publisher's information like name, phone, address, URL and the book it publishes. The book store request to have a report of the book it sells. So, the spreadsheet contains a book ISBN, year of publication, title, price, publisher, authors and the list of warehouses it can be found. As a customer has several shopping baskets, each shopping basket belongs to one customer, where each shopping basket can contain several books. A customer can place a book he decides to buy on a shopping basket. As all the information has to be stored on a spreadsheet, they do not have control of the book sales. Sometimes, a customer buys books but they don't know which books or how much she or he has paid. Then, the company is not making profits because it does not control what it sold against what it's paid. There is no control of the books inventory in the warehouse. Remember what you learned in course one. As OLTP systems modify data, there are four properties that should be taken into account to avoid problems in data. The ACID properties. OLTP systems contain a lot of transactions, each transaction must obey the ACID properties. ACID stands for Atomicity, Consistency, Isolation, Durability. Atomicity, every insert, update, delete data process must be correctly executed. If everything was fine, then all changes are reflected to the database. Commit, in case of any failure, none of these processes are reflected to the database, also called rollback. Consistency is a transaction that shall start from a consistent state of the database and it must create a new and valid states of data. Isolation. A transaction in process or running and not yet committed must remain isolated from any other transaction. In other words, a running transaction must not read any other running transaction data. Durability, where committed data must be persistent. Thus, committed data are stored on physical disk, thereby even in the event of a failure and the system restarts, the data will be available and consistent. They have enough budget to help people that can help them to manage information in order to maintain sales and inventory synchronized. Remember that the analysis and design of an OLTP system are analysis of requirements, conceptual design, logical design and physical design. What solution would you bring to the company? The student should submit its proposal and justification of the following elements. One, typical architecture according to the type of information system. Two, kind of database to implement and its design. Three, typical database operations expected. Four, according to the proposed solution, how to implement that as books are sold the inventory is the deregistered and the amount of the sale corresponds to the merchandise sold? Five, how does it support scalability? Six, how does it support maintainability? Seven, how does it support security and reliability? Well, that's all for today. Good luck. See you next week.