A computer-implemented method for accessing data stored in a database system comprising a controller configured in such a way that the data is stored with relationships between data-elements of the data, and with enforcement of integrity of the data; wherein a first data-element and a second data-element of the data are stored in the database system with a relationship between the first data-element and the second data-element ; wherein the first data-element is stored in the database system encapsulated by one or more first access-procedures (F10, F11, F12, F13) so that the first data-element is accessible exclusively by calling the one or more first access-procedures (F10, F11, F12, F13); wherein the second data-element is stored in the database system encapsulated by one or more second access-procedures (F20, F21, F22) so that the second data-element is accessible exclusively by calling the one or more second access-procedures (F20, F21, F22); wherein the database system further stores access authorization data indicating, at data-element level, whether access to second data-element is authorized to a first user (U1) identified in the database system through corresponding credentials that enable the first user (U1) to log in and operate in the database system ; the method being characterised by comprising: receiving , by the controller , a call by the first user (U1) to a first access-procedure (F10) of the one or more first access-procedures (F10, F11, F12, F13) for attempting to access the first data-element , said first access-procedure (F10) of the one or more first access-procedures (F10, F11, F12, F13) including a call to a second access-procedure (F20) of the one or more second access-procedures (F20, F21, F22) for attempting to access the second data-element based on the relationship between first and second data-elements ; performing , by the controller , the call to said first access-procedure (F10) of the one or more first access-procedures (F10, F11, F12, F13); verifying , by the controller , whether the first user (U1) is authorized to access the second data-element according to the access authorization data ; performing , by the controller , the call to said second access-procedure (F20) of the one or more second access-procedures (F20, F21, F22); and returning , by the controller , a result of the attempt to access the second data-element , including an indicator of whether the first user (U1) is authorized to access the second data-element . receiving , by the controller , a call by the first user (U1) to a first access-procedure (F10) of the one or more first access-procedures (F10, F11, F12, F13) for attempting to access the first data-element , said first access-procedure (F10) of the one or more first access-procedures (F10, F11, F12, F13) including a call to a second access-procedure (F20) of the one or more second access-procedures (F20, F21, F22) for attempting to access the second data-element based on the relationship between first and second data-elements ; performing , by the controller , the call to said first access-procedure (F10) of the one or more first access-procedures (F10, F11, F12, F13); verifying , by the controller , whether the first user (U1) is authorized to access the second data-element according to the access authorization data ; performing , by the controller , the call to said second access-procedure (F20) of the one or more second access-procedures (F20, F21, F22); and returning , by the controller , a result of the attempt to access the second data-element , including an indicator of whether the first user (U1) is authorized to access the second data-element . <EOS>